У Yuki есть мультимножество $S=\{s_1,\ldots,s_n\}$ размера $n$ и целое число $k$.
Yuki определяет преобразование следующим образом:
- Выбрать подмножество $S'$ мультимножества $S$ (при этом $S'$ может быть пустым), удалить $S'$ из $S$ и добавить $\operatorname{mex}^{*}$ мультимножества $S'$ в $S$.
Теперь Yuki хочет выполнить несколько преобразований, чтобы $S$ стало $\{k\}$. Помогите Yuki найти минимальное число преобразований, необходимых, чтобы $S$ стало равно $\{k\}$. Поскольку ответ может быть очень большим, выведите его по модулю $998244353$.
Можно доказать, что всегда существует хотя бы одна последовательность операций, преобразующая $S$ в $\{k\}$.
$*$: Mex мультимножества — наименьшее неотрицательное целое число, которое в нём не встречается. Например, $\operatorname{mex}\{0,1,2\}=3$, $\operatorname{mex}\{1,0,3,1\}=2$ и $\operatorname{mex}\varnothing=0$.
Входные данные
Эта задача содержит несколько наборов входных данных.
Первая строка содержит положительное целое число $t$ ($1 \le t \le 10^5$), обозначающее количество наборов входных данных.
Для каждого набора входных данных:
- Первая строка содержит два целых числа $n,k$ ($1 \le n \le 5 \cdot 10^5$, $0 \le k \le 10^9$).
- Вторая строка содержит $n$ целых чисел $s_1,\ldots,s_n$ ($0 \le s_i \le 10^9$).
Гарантируется, что сумма $n$ по всем наборам входных данных не превышает $5 \cdot 10^5$.
Выходные данные
Для каждого набора входных данных выведите одну строку с целым числом, обозначающим минимальное число преобразований, необходимых, чтобы $S$ стало равно $\{k\}$, по модулю $998244353$.
Примеры
Входные данные 1
6 1 2 1 1 4 4 3 3 0 2 2 4 2 1 0 3 2 4 3 2 1 0 2 3 52 20 2 6
Выходные данные 1
2 0 3 2 1 262875292
Примечание
Для первого набора входных данных:
- Yuki может выбрать $S'=\varnothing$ в первом преобразовании, получив $S=\{0,1\}$, а затем выбрать $S'=\{0,1\}$ во втором преобразовании, получив $S=\{2\}$.
- Можно доказать, что последовательности операций с меньшим числом преобразований не существует, поэтому ответ равен $2$.
Для второго набора входных данных:
- Yuki не нужно выполнять никаких преобразований, чтобы получить $S=\{4\}$, поэтому ответ равен $0$.
Для третьего набора входных данных:
- Yuki может выбрать $S'=\varnothing$ в первом преобразовании, получив $S=\{0,0,2,2\}$, выбрать $S'=\{0,2\}$ во втором преобразовании, получив $S=\{0,1,2\}$, а затем выбрать $S'=\{0,1,2\}$ в третьем преобразовании, получив $S=\{3\}$.
- Можно доказать, что последовательности операций с меньшим числом преобразований не существует, поэтому ответ равен $3$.
Для четвёртого набора входных данных:
- Yuki может выбрать $S'=\{2,3\}$ в первом преобразовании, получив $S=\{0,0,1\}$, а затем выбрать $S'=\{0,0,1\}$ во втором преобразовании, получив $S=\{2\}$.
- Можно доказать, что последовательности операций с меньшим числом преобразований не существует, поэтому ответ равен $2$.
Для пятого набора входных данных:
- Yuki может сразу выбрать $S'=\{0,1,2,2\}$ в первом преобразовании, получив $S=\{3\}$.
- Можно доказать, что последовательности операций с меньшим числом преобразований не существует, поэтому ответ равен $1$.