#agc054c. [agc054_c]Roughly Sorted

[agc054_c]Roughly Sorted

問題文

すぬけくんは,(1,2,...N)(1,\\ 2,\\ ...\\ N) の順列 P=(P1,P2,cdots,PN)P=(P_1,P_2,\\cdots,P_N) と整数 KK をもらいました. そこですぬけくんは,PP の隣接する二項をswapすることを繰り返して,以下の条件が満たされるようにしました.

  • それぞれの 1leqileqN1 \\leq i \\leq N について, 1leqj<i1 \\leq j< i, Pj>PiP_j>P_i を満たす jj が高々 KK 個である.

ここで,すぬけくんは最小の操作回数でこの条件を達成しました.

すべての操作が終わったあと,すぬけくんは元の順列を忘れてしまいました. 操作後の順列 PP' が与えられるので,元の順列 PP としてあり得るものが何通りあるかを 998244353998244353 で割った余りを求めてください.

制約

  • 2leqNleq50002 \\leq N \\leq 5000
  • 1leqKleqN11 \\leq K \\leq N-1
  • 1leqPileqN1 \\leq P'_i \\leq N
  • PineqPjP'_i \\neq P'_j (ineqji \\neq j)
  • それぞれの 1leqileqN1 \\leq i \\leq N について, 1leqj<i1 \\leq j< i, Pj>PiP'_j>P'_i を満たす jj が高々 KK 個である
  • 入力される値はすべて整数である

入力

入力は以下の形式で標準入力から与えられる.

NN KK P1P'_1 P2P'_2 cdots\\cdots PNP'_N

出力

答えを出力せよ.


入力例 1

3 1
3 1 2

出力例 1

2

PP として考えられるのは以下の 22 通りです.

  • P=(3,1,2)P=(3,1,2): 最小の操作回数は 00 回です.操作後の順列は PP' に一致します.
  • P=(3,2,1)P=(3,2,1): 最小の操作回数は 11 回です.P2P_2P3P_3 をswapすることで,P=(3,1,2)P=(3,1,2) となり,これは条件を満たします.操作後の順列は PP' に一致します.

入力例 2

4 3
4 3 2 1

出力例 2

1

入力例 3

5 2
4 2 1 5 3

出力例 3

3