Yuki는 크기가 $n$인 중복집합 $S=\{s_1,\ldots,s_n\}$과 정수 $k$를 가지고 있습니다.
Yuki는 변환을 다음과 같이 정의합니다:
- $S$의 부분집합 $S'$(여기서 $S'$은 공집합일 수 있음)을 선택하여 $S$에서 $S'$을 제거하고, $S'$의 $\operatorname{mex}^{*}$를 $S$에 추가합니다.
이제 Yuki는 몇 번의 변환을 수행하여 $S$가 $\{k\}$가 되도록 만들고 싶습니다. $S$를 $\{k\}$와 같게 만들기 위해 필요한 최소 변환 횟수를 구하여 Yuki를 도와주세요. 답이 매우 클 수 있으므로 $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
노트
1번째 테스트 케이스에 대하여:
- Yuki는 1번째 변환에서 $S'=\varnothing$을 선택하여 $S=\{0,1\}$로 만들고, 2번째 변환에서 $S'=\{0,1\}$을 선택하여 $S=\{2\}$로 만들 수 있습니다.
- 더 적은 변환 횟수를 사용하는 연산 순서가 존재하지 않음을 증명할 수 있으므로 답은 $2$입니다.
2번째 테스트 케이스에 대하여:
- $S=\{4\}$로 만들기 위해 어떠한 변환도 수행할 필요가 없으므로 답은 $0$입니다.
3번째 테스트 케이스에 대하여:
- Yuki는 1번째 변환에서 $S'=\varnothing$을 선택하여 $S=\{0,0,2,2\}$로 만들고, 2번째 변환에서 $S'=\{0,2\}$를 선택하여 $S=\{0,1,2\}$로 만든 뒤, 3번째 변환에서 $S'=\{0,1,2\}$를 선택하여 $S=\{3\}$으로 만들 수 있습니다.
- 더 적은 변환 횟수를 사용하는 연산 순서가 존재하지 않음을 증명할 수 있으므로 답은 $3$입니다.
4번째 테스트 케이스에 대하여:
- Yuki는 1번째 변환에서 $S'=\{2,3\}$을 선택하여 $S=\{0,0,1\}$로 만들고, 2번째 변환에서 $S'=\{0,0,1\}$을 선택하여 $S=\{2\}$로 만들 수 있습니다.
- 더 적은 변환 횟수를 사용하는 연산 순서가 존재하지 않음을 증명할 수 있으므로 답은 $2$입니다.
5번째 테스트 케이스에 대하여:
- Yuki는 1번째 변환에서 바로 $S'=\{0,1,2,2\}$를 선택하여 $S=\{3\}$으로 만들 수 있습니다.
- 더 적은 변환 횟수를 사용하는 연산 순서가 존재하지 않음을 증명할 수 있으므로 답은 $1$입니다.