题目描述
正整数 N, M が与えられます。
長さ N の正整数列 A=(A1, A2, …, AN) であって、以下の条件を満たすものの個数を 998244353 で割った余りを求めてください。
- 1 ≤ A1 < A2 < … < AN ≤ M
- $ B_i\ =\ A_1\ \oplus\ A_2\ \oplus\ \dots\ \oplus\ A_i $ としたとき、 B1 < B2 < … < BN
ただしここで、 ⊕ はビット単位 XOR 演算を表します。
ビット単位 XOR 演算とは 非負整数 A, B のビット単位 XOR 、A ⊕ B は、以下のように定義されます。
- A ⊕ B を二進表記した際の 2k (k ≥ 0) の位の数は、A, B を二進表記した際の 2k の位の数のうち一方のみが 1 であれば 1、そうでなければ 0 である。
例えば、3 ⊕ 5 = 6 となります (二進表記すると: 011 ⊕ 101 = 110)。
一般に k 個の非負整数 p1, p2, p3, …, pk のビット単位 XOR は $ (\dots\ ((p_1\ \oplus\ p_2)\ \oplus\ p_3)\ \oplus\ \dots\ \oplus\ p_k) $ と定義され、これは p1, p2, p3, …, pk の順番によらないことが証明できます。
输入格式
入力は以下の形式で標準入力から与えられます。
N M
输出格式
答えを出力してください。
题目大意
给定 m,n,希望构造长度为 m 的数列 a 满足条件:
求方案个数。
2 4
5
4 4
0
10 123456789
205695670
提示
制約
- 1 ≤ N ≤ M < 260
- 入力される値はすべて整数
Sample Explanation 1
例えば (A1, A2)=(1, 3) とすると A1 < A2 であり、B1=A1=1, B2=A1⊕ A2=2 より B1 < B2 が成り立つので条件を満たします。 この他には $ (A_1,\ A_2)=(1,\ 2),\ (1,\ 4),\ (2,\ 4),\ (3,\ 4) $ が条件を満たします。