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$.