AT_agc054_e [AGC054E] ZigZag Break

Description

[problemUrl]: https://atcoder.jp/contests/agc054/tasks/agc054_e 整数 $ N,A $ が与えられます. $ (1,2,\cdots,N) $ の順列 $ P=(P_1,P_2,\cdots,P_N) $ であって,以下の条件を満たすものの個数を $ 998244353 $ で割った余りを求めてください. - $ P_1=A $ - 以下の操作を繰り返すことで,$ P $ の要素数を $ 2 $ にできる. - $ 3 $ つの**連続する**要素 $ x,y,z $ を選ぶ. ただしこの時,$ y\ \ \max(x,z) $ が成り立っている必要がある. そして,$ y $ を $ P $ から消す. 一つの入力ファイルにつき,$ T $ 個のテストケースに答えてください.

Input Format

入力は以下の形式で標準入力から与えられる. > $ T $ $ case_1 $ $ case_2 $ $ \vdots $ $ case_T $ 各テストケースは以下の形式で与えられる. > $ N $ $ A $

Output Format

各テストケースについて答えを出力せよ.

Explanation/Hint

### 制約 - $ 1\ \leq\ T\ \leq\ 5\ \times\ 10^5 $ - $ 3\ \leq\ N\ \leq\ 10^6 $ - $ 1\ \leq\ A\ \leq\ N $ - 入力される値はすべて整数 ### Sample Explanation 1 例えば,$ N=4,A=2 $ の時,$ P=(2,1,4,3) $ は条件を満たします. 以下に手順の例を示します. - $ (x,y,z)=(2,1,4) $ を選び,$ 1 $ を消す.$ P=(2,4,3) $ になる. - $ (x,y,z)=(2,4,3) $ を選び,$ 4 $ を消す.$ P=(2,3) $ になる.