AT_xmascon23_c Clamp Clamp Clamp
Description
$ N $ を正整数とする. $ (0, 1, \ldots, 2N) $ の並べ替え $ (a_0, a_1, \ldots, a_{2N}) $ であって,すべての $ i = 0, 1, \ldots, N-1 $ に対し $ a_{2i+1} < a_{2i+2} $ を満たすもの全体の集合を $ A $ とする.
$ a = (a_0, a_1, \ldots, a_{2N}) \in A $ に対し, $ f(a) $ を以下のように定める:
- $ b_0 = a_0 $ とおく.
- $ i = 0, 1, \ldots, N-1 $ に対し, $ b_{i+1} = \min\{\max\{b_i, a_{2i+1}\}, a_{2i+2}\} $ とおく.
- $ f(a) = b_N $ と定める.
$ N $ および, $ Q $ 個の整数 $ Z_1, Z_2, \ldots, Z_Q $ が与えられる.各 $ j = 1, 2, \ldots, Q $ に対し, $ f(a) = Z_j $ となる $ a \in A $ の個数を $ 998244353 $ で割った余りを求めよ.
Input Format
入力は以下の形式で標準入力から与えられる.
> $ N $ $ Q $ $ Z_1 $ $ Z_2 $ $ \cdots $ $ Z_Q $
Output Format
$ j = 1, 2, \ldots, Q $ の順に, $ f(a) = Z_j $ となる $ a \in A $ の個数を $ 998244353 $ で割った余りを,空白区切りで出力せよ.
Explanation/Hint
### Sample Explanation 1
- $ a = (2, 3, 4, 0, 1), (3, 2, 4, 0, 1), (4, 2, 3, 0, 1) $ のとき $ f(a) = 1 $ である.
- $ a = (0, 1, 2, 3, 4), (1, 0, 2, 3, 4), (2, 0, 1, 3, 4) $ のとき $ f(a) = 3 $ である.
- その他の $ a \in A $ に対しては $ f(a) = 2 $ である.
### Constraints
- $ 1 \le N \le 10^7 $ .
- $ 1 \le Q \le 250\,000 $ .
- $ 0 \le Z_1 < Z_2 < \cdots < Z_Q \le 2N $ .