#ZF1121. 排序

排序

Description

如果一个排列对于每个 1iN1 \leq i \leq N,最多只存在 KKjj 使得 1j<i1 \leq j < iPj>PiP^{'}_j > P^{'}_i ,那么这就是一个好排列。

假设你原本有一个排列 PP,通过每次交换相邻两个元素的方式,进行了最小的次数得到了好排列 PP^{'}

得到 PP^{'} 后,原本的排列 PP 却丢失了。现在给定 PP^{'}KK,希望你求出可能的原排列 PP 的个数。由于这个结果可能很大,所以求这个结果对 998244353998244353 取模。

Format

Input

第一行有两个整数 N,KN, K (2N5000,1KN1)(2 \leq N \leq 5000, 1 \leq K \leq N - 1)

第二行有 NN 个整数 P1,P2,,PNP^{'}_1, P^{'}_2, \cdots, P^{'}_N $(1 \leq P^{'}_i \leq N, P^{'}_i \ne P^{'}_j(i \ne j))$。

对于每个 1iN1 \leq i \leq N,最多只存在 KKjj 使得 1j<i1 \leq j < iPj>PiP^{'}_j > P^{'}_i

Output

输出一个整数,表示可能的原排列的个数对 998244353998244353 取模的结果。

Samples

3 1
3 1 2
2

Note

PP 应该是以下两种排列之一:

  • P=(3,1,2)P=(3, 1, 2):所需的最小交换次数为 0000 次交换后,排列等于 PP^{'}
  • P=(3,2,1)P=(3, 2, 1):所需的最小交换次数为 11:交换 P2P_2P3P_3 得到 P=(3,1,2)P=(3, 1, 2),满足条件,等于PP^{'}
4 3
4 3 2 1
1
5 2
4 2 1 5 3
3

Limitation

1s, 1024KiB for each test case.