問題文
正整数 N,M が与えられます。
長さ N の正整数列 A=(A1,A2,dots,AN) であって、以下の条件を満たすものの個数を 998244353 で割った余りを求めてください。
- 1leqA1<A2<dots<ANleqM
- Bi=A1oplusA2oplusdotsoplusAi としたとき、 B1<B2<dots<BN
ただしここで、 oplus はビット単位 mathrmXOR 演算を表します。
ビット単位 mathrmXOR 演算とは
非負整数 A,B のビット単位 mathrmXOR 、AoplusB は、以下のように定義されます。
- AoplusB を二進表記した際の 2k (kgeq0) の位の数は、A,B を二進表記した際の 2k の位の数のうち一方のみが 1 であれば 1、そうでなければ 0 である。
例えば、3oplus5=6 となります (二進表記すると: 011oplus101=110)。
一般に k 個の非負整数 p1,p2,p3,dots,pk のビット単位 mathrmXOR は $(\\dots ((p_1 \\oplus p_2) \\oplus p_3) \\oplus \\dots \\oplus p_k)$ と定義され、これは p1,p2,p3,dots,pk の順番によらないことが証明できます。
制約
- 1leqNleqM<260
- 入力される値はすべて整数
入力
入力は以下の形式で標準入力から与えられます。
N M
出力
答えを出力してください。
入力例 1
2 4
出力例 1
5
例えば (A1,A2)=(1,3) とすると A1<A2 であり、B1=A1=1,B2=A1oplusA2=2 より B1<B2 が成り立つので条件を満たします。
この他には $(A_1,\\ A_2)=(1,\\ 2),\\ (1,\\ 4),\\ (2,\\ 4),\\ (3,\\ 4)$ が条件を満たします。
入力例 2
4 4
出力例 2
0
入力例 3
10 123456789
出力例 3
205695670