atcoder#ARC156B. [ARC156B] Mex on Blackboard

[ARC156B] Mex on Blackboard

配点 : 500500

問題文

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

黒板に NN 個の非負整数が書かれており、ii 番目の非負整数は AiA_i です。

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

  • 黒板に書かれている非負整数を 00 個以上選ぶ。選んだ非負整数からなる多重集合を SS として、mex(S)\mathrm{mex}(S) を黒板に 11 個書き込む。

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

制約

  • 1N,K2×1051 \leq N,K \leq 2\times 10^5
  • 0Ai2×1050\leq A_i\leq 2\times 10^5
  • 入力される数値は全て整数

入力

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

NN KK

A1A_1 A2A_2 \ldots ANA_N

出力

答えを出力せよ。

3 1
0 1 3
3

操作後に得られる多重集合は、以下の 33 通りです。

  • {0,0,1,3}\lbrace 0,0,1,3 \rbrace
  • {0,1,1,3}\lbrace 0,1,1,3\rbrace
  • {0,1,2,3}\lbrace 0,1,2,3 \rbrace

例えば、{0,1,1,3}\lbrace 0,1,1,3\rbrace は黒板に書かれている 00 を選び、S={0}S=\lbrace 0\rbrace として操作をすることで得られます。

2 1
0 0
2

操作後に得られる多重集合は、以下の 22 通りです。

  • {0,0,0}\lbrace 0,0,0 \rbrace
  • {0,0,1}\lbrace 0,0,1\rbrace

操作で選ぶ整数は 00 個でも良いことに注意してください。

5 10
3 1 4 1 5
7109