#arc156b. [arc156_b]Mex on Blackboard

[arc156_b]Mex on Blackboard

题目描述

对于一个非负整数的有限多重集合 SS,定义 mathrmmex(S)\\mathrm{mex}(S)SS 中不存在的最小非负整数。例如,mathrmmex(lbrace0,0,1,3rbrace)=2\\mathrm{mex}(\\lbrace 0,0, 1,3\\rbrace ) = 2mathrmmex(lbrace1rbrace)=0\\mathrm{mex}(\\lbrace 1 \\rbrace) = 0mathrmmex(lbracerbrace)=0\\mathrm{mex}(\\lbrace \\rbrace) = 0

黑板上有 NN 个非负整数,第 ii 个整数是 AiA_i

你将进行如下操作恰好 KK 次:

  • 在黑板上选择零个或多个整数。设选择的整数构成的多重集合为 SS,则将 mathrmmex(S)\\mathrm{mex}(S) 写在黑板上。

最终黑板上可能出现哪些整数的多重集合有多少种?将计数结果对 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\\ldots ANA_N

输出

输出答案。

示例输入 1

3 1
0 1 3

示例输出 1

3

以下三种多重集合可以通过操作得到。

  • lbrace0,0,1,3rbrace\\lbrace 0,0,1,3 \\rbrace
  • lbrace0,1,1,3rbrace\\lbrace 0,1,1,3\\rbrace
  • lbrace0,1,2,3rbrace\\lbrace 0,1,2,3 \\rbrace

例如,你可以选择将黑板上的 00 作为整数构成的多重集合 SS,从而得到 lbrace0,1,1,3rbrace\\lbrace 0,1,1,3\\rbrace

示例输入 2

2 1
0 0

示例输出 2

2

以下两种多重集合可以通过操作得到。

  • lbrace0,0,0rbrace\\lbrace 0,0,0 \\rbrace
  • lbrace0,0,1rbrace\\lbrace 0,0,1\\rbrace

注意,你可以选择在操作中不选择任何整数。

示例输入 3

5 10
3 1 4 1 5

示例输出 3

7109