AT_past202209_o 2個のボール

Description

$ 0 $ 以上 $ 2^N $ 未満の数が書かれたボールが入った箱 $ A $ と箱 $ B $ があります。箱 $ A $ には $ i $ $ (0 \leq i \lt 2^N) $ が書かれたボールが $ A_i $ 個、箱 $ B $ には $ i $ $ (0 \leq i \lt 2^N) $ が書かれたボールが $ B_i $ 個入っています。すべてのボールは区別できます。 箱 $ A $ と箱 $ B $ からボールを $ 1 $ 個ずつ取り出すことを考えます。取り出し方は (箱 $ A $ に入っているボールの個数) $ \times $ (箱 $ B $ に入っているボールの個数) 通りありますが、そのうち次の条件を満たす取り出し方の数を $ f(x, y) $ とおきます。 - $ \mathrm{popcount}(x) $ を $ x $ を $ 2 $ 進表記にしたときに出現する $ 1 $ の個数として定義する。 $ A $ から取り出したボールに書かれた数を $ a $ 、 $ B $ から取り出したボールに書かれた数を $ b $ とする。このとき、 $ a $ と $ b $ のビットごとの論理和が $ x $ で、 $ \mathrm{popcount}(a) + \mathrm{popcount}(b) $ が $ y $ になっている。 長さ $ Q $ の数列 $ X,Y $ が与えられるので、すべての $ i $ $ (1 \leq i \leq Q) $ に対して $ f(X_i, Y_i) $ を $ 998244353 $ で割ったあまりを計算してください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ Q $ $ A_0 $ $ A_1 $ $ \dots $ $ A_{2^N-1} $ $ B_0 $ $ B_1 $ $ \dots $ $ B_{2^N-1} $ $ X_1 $ $ Y_1 $ $ X_2 $ $ Y_2 $ $ \vdots $ $ X_Q $ $ Y_Q $

Output Format

$ Q $ 行出力せよ。 $ i $ 行目には $ f(X_i,Y_i) \bmod{998244353} $ を出力せよ。

Explanation/Hint

### Sample Explanation 1 - $ x = 1, y = 1 $ となる $ (a,b) $ の組み合わせは $ (a,b) = (0, 1), (1, 0) $ です。よって答えは $ A_0 \times B_1 + A_1 \times B_0 = 32 $ となります。 - $ x = 3, y = 2 $ となる $ (a,b) $ の組み合わせは $ (a,b) = (0,3),(1,2),(2,1),(0,3) $ です。よって答えは $ A_0 \times B_3 + A_1 \times B_2 + A_2 \times B_1 + A_3 \times B_0 = 61 $ となります。 - $ x = 2, y = 0 $ となる $ (a,b) $ の組み合わせは存在しません。よって答えは $ 0 $ となります。 ### Sample Explanation 2 少なくとも片方の箱が空である場合もあります。 ### Constraints - $ 1 \leq N \leq 17 $ - $ 1 \leq Q \leq 10^5 $ - $ 0 \leq A_i \lt 998244353 $ $ (0 \leq i \lt 2^N) $ - $ 0 \leq B_i \lt 998244353 $ $ (0 \leq i \lt 2^N) $ - $ 0 \leq X_i \lt 2^N $ $ (1 \leq i \leq Q) $ - $ 0 \leq Y_i \leq 2N $ $ (1 \leq i \leq Q) $ - 入力はすべて整数である。