#abc288h. [abc288_h]A Nameless Counting Problem

[abc288_h]A Nameless Counting Problem

問題文

下記の 22 つの条件をともに満たす長さ NN の整数列 A=(A1,A2,ldots,AN)A = (A_1, A_2, \\ldots, A_N) の個数を 998244353998244353 で割ったあまりを出力してください。

  • $0 \\leq A_1 \\leq A_2 \\leq \\cdots \\leq A_N \\leq M$
  • A1oplusA2opluscdotsoplusAN=XA_1 \\oplus A_2 \\oplus \\cdots \\oplus A_N = X

ここで、oplus\\oplus はビットごとの排他的論理和を表します。

ビットごとの排他的論理和とは? 非負整数 A,BA, B のビットごとの排他的論理和 AoplusBA \\oplus B は、以下のように定義されます。

  • AoplusBA \\oplus B を二進表記した際の 2k2^k (kgeq0k \\geq 0) の位の数は、A,BA, B を二進表記した際の 2k2^k の位の数のうち一方のみが 11 であれば 11、そうでなければ 00 である。

例えば、3oplus5=63 \\oplus 5 = 6 となります (二進表記すると: 011oplus101=110011 \\oplus 101 = 110)。

制約

  • 1leqNleq2001 \\leq N \\leq 200
  • 0leqMlt2300 \\leq M \\lt 2^{30}
  • 0leqXlt2300 \\leq X \\lt 2^{30}
  • 入力はすべて整数

入力

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

NN MM XX

出力

答えを出力せよ。


入力例 1

3 3 2

出力例 1

5

問題文中の 22 つの条件をともに満たす長さ NN の整数列 AA は、$(0, 0, 2), (0, 1, 3), (1, 1, 2), (2, 2, 2), (2, 3, 3)$ の 55 個です。


入力例 2

200 900606388 317329110

出力例 2

788002104