AT_pakencamp_2022_day1_l Mex on Blackboard 2
Description
有限個の非負整数からなる多重集合 $ 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 $ で割ったあまりを求めてください。
Input Format
入力は以下の形式で標準入力から与えられます。
> $ N $ $ K $ $ A_1 $ $ A_2 $ $ \dots $ $ A_N $
Output Format
答えを一行に出力してください。
Explanation/Hint
### Sample Explanation 1
操作後に得られる数列は、以下の $ 3 $ 通りです。
- $ (0,1,3,0) $
- $ (0,1,3,1) $
- $ (0,1,3,2) $
### Constraints
- $ 1 \leq N, K \leq 2000 $
- $ 0 \leq A_i \leq 2000 $
- 入力される数値は全て整数