题目描述
对于由有限个非负整数组成的多重集 S,定义 mex(S) 为不属于 S 的最小非负整数。例如,mex({0,0,1,3})=2,mex({1})=0,mex({})=0。
黑板上写有 N 个非负整数,第 i 个数为 Ai。
你需要恰好进行 K 次如下操作:
- 从黑板上的非负整数中选出 0 个或多个,组成多重集 S,然后将 mex(S) 写到黑板上 1 次。
请你求出,经过 K 次操作后,黑板上可能出现的非负整数多重集的种数,结果对 998244353 取模。
输入格式
输入以以下格式从标准输入给出。
N K A1 A2 … AN
输出格式
请输出答案。
样例 1
输入
3 1
0 1 3
输出
3
样例 2
输入
2 1
0 0
输出
2
样例 3
输入
5 10
3 1 4 1 5
输出
7109
说明/提示
限制条件
- 1≤N,K≤2×105
- 0≤Ai≤2×105
- 输入的所有数均为整数
样例解释 1
操作后可能得到的多重集有以下 3 种:
- {0,0,1,3}
- {0,1,1,3}
- {0,1,2,3}
例如,{0,1,1,3} 可以通过选择黑板上的 0,令 S={0},然后进行操作得到。
样例解释 2
操作后可能得到的多重集有以下 2 种:
- {0,0,0}
- {0,0,1}
注意,操作时可以选择 0 个整数。
由 ChatGPT 4.1 翻译