编程题
### 问题描述
对于一个给定的整数集合 $S$,$\text{MEX(S)}$ 定义为不属于 $S$ 的最小非负整数。
例如:对于集合 $S=\lbrace 0,1,2,4 \rbrace$,$\text{MEX(S)} = 3$,因为 $3$ 是最小的未出现在集合 $S$ 中的非负整数。
现在小蓝有一个大小为 $N$ 的**可重集** $S$,同时他会给出 $Q$ 个询问,每次询问将会给出一个整数 $K$,请你回答有多少个不同的**非空**集合 $A$ 满足以下要求:
- $\text{MEX(A)}=K$。
- $A$ 是 $S$ 的子集,即满足 $A \subseteq S$。
由于答案可能很大,你需要将答案对 $998244353$ 取模后进行输出。
注意:若两个集合的数在 $S$ 中所属的下标不同,则视为不同的集合。
### 输入格式
第一行输入两个整数 $N,Q(1 \leq N,Q \leq 10^5)$ 表示集合 $S$ 的大小和询问的数量。
第二行输入 $N$ 个整数 $S_1,S_2,S_3,\cdots ,S_n(0 \leq S_i \leq N-1)$ 表示集合 $S$。
接下来 $Q$ 行,每行输入一个整数 $K(0 \leq K \leq N)$ 表示询问。
### 输出格式
输出 $Q$ 行,每行一个整数表示答案。
### 输入样例
```text
5 3
0 1 2 3 3
2
4
5
```
### 输出样例
```text
4
3
0
```
### 说明
对于第二个查询 $K=4$ 时,集合 $\lbrace S_1,S_2,S_3,S_4\rbrace$,$\lbrace S_1,S_2,S_3,S_5\rbrace$,$\lbrace S_1,S_2,S_3,S_4,S_5\rbrace$ 符合条件。