atcoder#ABC267H. [ABC267Ex] Odd Sum

[ABC267Ex] Odd Sum

配点 : 600600

問題文

長さ NN の整数列 A=(A1,A2,,AN)A=(A_1,A_2,\dots,A_N) が与えられます。

AA から要素を奇数個選ぶ方法のうち、選んだ要素の総和が MM になるものの個数を 998244353998244353 で割ったあまりを求めてください。

ただし、22 つの選び方が異なるとは、ある整数 i(1iN)i (1 \le i \le N) が存在して、一方の選び方では AiA_i を選び、もう一方では選んでいないことを言います。

制約

  • 1N1051 \le N \le 10^5
  • 1M1061 \le M \le 10^6
  • 1Ai101 \le A_i \le 10
  • 入力は全て整数。

入力

入力は以下の形式で標準入力から与えられる。

NN MM

A1A_1 A2A_2 \dots ANA_N

出力

答えを出力せよ。

5 6
1 2 3 3 6
3

条件を満たす選び方は以下の 33 通りです。

  • A1,A2,A3A_1,A_2,A_3 を選ぶ。
  • A1,A2,A4A_1,A_2,A_4 を選ぶ。
  • A5A_5 を選ぶ。

A3,A4A_3,A_4 を選んだ場合、総和は 66 ですが選んだ要素の個数が奇数個でないため条件を満たしません。

10 23
1 2 3 4 5 6 7 8 9 10
18