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 $ - 入力される数値は全て整数