AT_arc217_b [ARC217B] Not High Element
Description
整数 $ N,K $ と長さ $ K $ の整数列 $ A=(A_1,A_2,\ldots,A_K) $ が与えられます。 $ A $ の各要素は $ 1 $ 以上 $ N $ 以下で相異なることが保証されます。
$ (1,2,\ldots,N) $ の順列 $ P=(P_1,P_2,\ldots,P_N) $ に対して $ f(P) $ を以下のように定義します。
- $ P $ に対して以下の操作を行うことのできる回数の最大値。
- $ P_i < \max(P_1,P_2,\ldots,P_{i-1}) $ を満たす $ 2\le i\le N $ を選び、 $ P_i $ を先頭に移動させる。つまり、 $ P $ を $ (P_i,P_1,P_2,\ldots,P_{i-1},P_{i+1},\ldots,P_N) $ で置き換える。
$ i=1,2,\ldots,K $ に対し $ P_i=A_i $ を満たす $ (1,2,\ldots,N) $ の順列 $ P $ は $ (N-K)! $ 通りありますが、それら全てに対する $ f(P) $ の総和を $ 998244353 $ で割ったあまりを求めてください。
$ T $ 個のテストケースが与えられるので、それぞれについて答えを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ T $ $ \text{case}_1 $ $ \text{case}_2 $ $ \vdots $ $ \text{case}_T $
各テストケースは以下の形式で与えられる。
> $ N $ $ K $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_K $
Output Format
各テストケースに対する答えを順に改行区切りで出力せよ。
Explanation/Hint
### Sample Explanation 1
$ 1 $ 番目のテストケースについて考えます。
$ i=1,2,\ldots,K $ に対し $ P_i=A_i $ を満たす $ (1,2,\ldots,N) $ の順列 $ P $ は $ P=(1,2,3),(1,3,2) $ の $ 2 $ つです。
$ P=(1,2,3) $ のとき、操作を $ 1 $ 回も行うことができないので $ f(P)=0 $ です。
$ P=(1,3,2) $ のとき、以下のようにすることで操作を $ 2 $ 回行うことができます。
- $ i=3 $ を選ぶ。 $ P=(2,1,3) $ となる。
- $ i=2 $ を選ぶ。 $ P=(1,2,3) $ となる。
$ 3 $ 回以上操作することはできないので、この場合は $ f(P)=2 $ です。
以上より、求める答えは $ 0+2=2 $ となります。
### Constraints
- $ 1\le T\le 10^5 $
- $ 1\le K\le N $
- 全てのテストケースにおける $ N $ の総和は $ 5\times 10^5 $ 以下
- $ 1\le A_i\le N $
- $ A $ の各要素は相異なる
- 入力される値は全て整数