L - Mex on Blackboard 2 Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 500

問題文

有限個の非負整数からなる多重集合 S に対して、\operatorname{mex}(S)S に含まれない最小の非負整数と定義します。例えば、\operatorname{mex}(\lbrace 0,0,1,3 \rbrace)=2,\operatorname{mex}(\lbrace 1 \rbrace)=0,\operatorname{mex}(\lbrace\rbrace)=0 です。

黒板に長さ N の非負整数列 A=(A_1,A_2,\ldots,A_N) が書かれています。

あなたは、以下の操作をちょうど K 回行います。

  • A の中から非負整数を 0 個以上選ぶ。選んだ非負整数からなる多重集合を S として、\operatorname{mex}(S)A の後ろに追加する。

最終的に黒板に書かれている非負整数列 A としてありうるものの個数を 998244353 で割ったあまりを求めてください。

制約

  • 1 \leq N, K \leq 2000
  • 0 \leq A_i \leq 2000
  • 入力される数値は全て整数

入力

入力は以下の形式で標準入力から与えられます。

N K
A_1 A_2 \dots A_N

出力

答えを一行に出力してください。


入力例 1

3 1
0 1 3

出力例 1

3

操作後に得られる数列は、以下の 3 通りです。

  • (0,1,3,0)
  • (0,1,3,1)
  • (0,1,3,2)

入力例 2

5 10
3 1 4 1 5

出力例 2

14476910