길이가 $n$인 정수 수열 $a_1,a_2,\ldots,a_n$과 정수 $x$가 주어진다.
수열의 부분 수열을 다음과 같이 정의한다. $1,\ldots,n$에서 고른 임의의 비어 있지 않은 인덱스 집합 $\{i_1,i_2,\ldots,i_m\}$ ($i_1<i_2<\cdots<i_m$)에 대해, $a_{i_1},\ldots,a_{i_m}$을 원래 순서대로 나열한 것이 부분 수열이다. 그 중앙값은 다음과 같이 정의한다. 선택한 $m$개의 값을 $v_1\le v_2\le\cdots\le v_m$이 되도록 정렬한 뒤:
- $m$이 홀수이면 중앙값은 가운데 값 $v_{(m+1)/2}$이다.
- $m$이 짝수이면 중앙값은 가운데 두 값의 평균인 $\frac{v_{m/2}+v_{m/2+1}}{2}$이다. 이 평균은 정수가 아닐 수도 있지만, 이 문제에서는 그 값이 정확히 $x$와 같은지만 고려한다.
중앙값이 정확히 $x$인 부분 수열의 개수를 구하여라. 이 수는 매우 클 수 있으므로 $998244353$으로 나눈 나머지를 출력하여라.
참고: 서로 다른 두 인덱스 집합에서 선택한 값들의 다중집합이 정확히 같더라도(수열에 중복된 수가 있을 수 있으므로 이런 일이 가능하다), 여전히 서로 다른 두 부분 수열로 센다. 부분 수열을 구별하는 것은 선택한 값들의 다중집합이 아니라 인덱스 집합 자체이다. 빈 인덱스 집합은 부분 수열이 아니며 절대 세지 않는다.
입력
각 테스트는 여러 테스트 케이스로 이루어진다. 첫 번째 줄에는 테스트 케이스의 개수 $t$ ($1\le t\le10^4$)가 주어진다.
각 테스트 케이스에 대해:
- 첫 번째 줄에는 두 정수 $n$과 $x$ ($1\le n\le2\times10^5$, $-10^9\le x\le10^9$)가 주어지며, 각각 수열 $a$의 길이와 목표 중앙값을 나타낸다.
- 두 번째 줄에는 $n$개의 정수 $a_1,a_2,\ldots,a_n$ ($-10^9\le a_i\le10^9$)이 주어지며, 주어진 수열의 원소를 나타낸다.
모든 테스트 케이스에 대한 $n$의 합은 $2\times10^5$를 넘지 않음이 보장된다.
출력
각 테스트 케이스에 대해, 중앙값이 정확히 $x$인 부분 수열의 개수를 $998244353$으로 나눈 나머지를 한 줄에 하나의 정수로 출력하여라.
예제
입력 1
2 5 3 1 3 5 3 2 2 0 -1 1
출력 1
14 1