#arc139f. [arc139_f]Many Xor Optimization Problems

[arc139_f]Many Xor Optimization Problems

問題文

PCT 君は以下の問題を作りました。

Xor Optimization Problem

長さ NN の非負整数列 A1,A2,...,ANA_1,A_2,...,A_N が与えられる。AA の要素を好きな個数選ぶとき、選んだ値の mathrmXOR\\mathrm{XOR} が取りうる最大値はいくらか?

この問題は、Nyaan さんにとっては簡単だったため PCT 君は以下のように改題しました。

Many Xor Optimization Problems

長さ NN かつ全ての要素が 00 以上 2M12^M-1 以下である整数列は 2NM2^{NM} 通り存在しますが、その全てに対して Xor Optimization Problem を解いた時の解の総和を 998244353998244353 で割ったあまりを求めてください。

Many Xor Optimization Problems を解いてください。

mathrmXOR\\mathrm{XOR} とは

非負整数 A,BA, B のビット単位 mathrmXOR\\mathrm{XOR}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)。
一般に kk 個の非負整数 p1,p2,p3,dots,pkp_1, p_2, p_3, \\dots, p_k のビット単位 mathrmXOR\\mathrm{XOR} は $(\\dots ((p_1 \\oplus p_2) \\oplus p_3) \\oplus \\dots \\oplus p_k)$ と定義され、これは p1,p2,p3,dots,pkp_1, p_2, p_3, \\dots, p_k の順番によらないことが証明できます。

制約

  • 1leN,Mle2500001 \\le N,M \\le 250000
  • 入力は全て整数である。

入力

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

NN MM

出力

答えを出力してください。


入力例 1

2 1

出力例 1

3

長さが 22 かつ全ての要素が 00 以上 11 以下である整数列全てに対して Xor Optimization Problem を解きます。

  • A=(0,0)A=(0,0) の時の解は 00
  • A=(0,1)A=(0,1) の時の解は 11
  • A=(1,0)A=(1,0) の時の解は 11
  • A=(1,1)A=(1,1) の時の解は 11

よって、0+1+1+1=30+1+1+1=3 が解となります。


入力例 2

3 4

出力例 2

52290

入力例 3

1234 5678

出力例 3

495502261