AT_pakencamp_2022_day3_f Cycle and Xor

Description

$ 0 $ 以上 $ 2^M $ 未満の整数からなる長さ $ N $ の数列 $ A=(A_0,A_1,\ldots,A_{N-1}) $ であって、以下の条件を満たすものの個数を $ 998244353 $ で割った余りを求めてください。 - すべての整数 $ i\ (0 \le i \le N-1) $ について、 $ A_i \oplus A_{(i+1) \bmod N} \neq T_i $ かつ $ A_i \oplus A_{(i+1) \bmod N} \neq U_i $ が成り立つ ただし $ \oplus $ はビット単位 $ \mathrm{XOR} $ 演算を表します。 ビット単位 $ \mathrm{XOR} $ 演算とは非負整数 $ A,B $ のビット単位 $ \mathrm{XOR} $ 演算、 $ A\oplus B $ は、以下のように定義されます。 - $ A\oplus B $ を二進表記した際の $ 2^k\ (k\geq 0) $ の位の数は、 $ A,B $ を二進表記した際の $ 2^k $ の位の数のうち一方のみが $ 1 $ であれば $ 1 $ 、そうでなければ $ 0 $ である。 例えば、 $ 3\oplus 5 = 6 $ となります(二進表記すると: $ 011\oplus 101 = 110 $ )。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ M $ $ T_0 $ $ U_0 $ $ T_1 $ $ U_1 $ $ \vdots $ $ T_{N-1} $ $ U_{N-1} $

Output Format

答えを出力せよ。

Explanation/Hint

### Sample Explanation 1 $ A $ としてありうるのは $ (0,2,1),(0,3,0),(1,3,0),(1,2,1),(2,0,3),(2,1,2),(3,1,2),(3,0,3) $ の $ 8 $ 通りです。 ### Constraints - $ 2 \le N \le 2\times 10^5 $ - $ 1 \le M \le 30 $ - $ 0 \le T_i < U_i < 2^M $ - 入力は全て整数