#abc288h. [abc288_h]A Nameless Counting Problem

[abc288_h]A Nameless Counting Problem

题目描述

给定长度为 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 表示按位异或。

什么是按位异或?

非负整数 AABB 的按位异或 AoplusBA \\oplus B 定义如下:

  • 当用二进制表示 AoplusBA \\oplus B 时,第 kk 位(kgeq0k \\geq 0)为 11 当且仅当 AABB 的第 kk 位中恰好有一个为 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

下面是满足上述条件的长度为 NN 的五个序列:$(0, 0, 2), (0, 1, 3), (1, 1, 2), (2, 2, 2), (2, 3, 3)$。


示例输入 2

200 900606388 317329110

示例输出 2

788002104