VegiCat이 두 정수 $n$과 $m$을 줍니다. 다음 조건을 만족하는 정수 배열 $a_1, a_2, \ldots, a_n$을 생각해 봅시다:
$$ a_1 = 0, \qquad 0 \le a_{i+1} - a_i \le 1 \quad (1 \le i < n). $$
$s_i = a_1 + a_2 + \ldots + a_i$를 $a$의 누적 합이라고 합시다. VegiCat은 또한 $m$개의 위치에서의 누적 합을 알려줍니다. 즉, $s_{p_j} = v_j$ ($1 \le j \le m$) 형태의 제약 조건이 $m$개 주어집니다.
모든 제약 조건을 만족하는 배열의 개수를 $998\,244\,353$으로 나눈 나머지를 구하세요. 모든 제약 조건을 만족하는 배열이 없다면 답은 $0$입니다.
입력
첫째 줄에 테스트 케이스의 개수를 나타내는 정수 $T$ ($1 \le T \le 10^4$)가 주어집니다. 이어서 테스트 케이스에 대한 설명이 주어집니다.
각 테스트 케이스는 다음과 같이 주어집니다:
첫째 줄에 배열의 길이와 누적 합 제약 조건의 개수를 각각 나타내는 두 정수 $n$과 $m$ ($1 \le n \le 100$, $0 \le m \le n$)이 주어집니다.
다음 $m$개의 줄 중 $j$번째 줄에는 두 정수 $p_j$와 $v_j$ ($1 \le p_j \le n$, $0 \le v_j \le 10^9$)가 주어집니다. 이는 배열의 처음 $p_j$개 원소의 합이 $v_j$와 같아야 한다는 제약 조건을 나타냅니다.
위치 $p_j$는 엄격하게 증가하는 순서로 주어집니다.
출력
각 테스트 케이스마다 유효한 배열의 개수를 $998\,244\,353$으로 나눈 나머지를 나타내는 정수를 출력합니다.
예제
입력 1
6 1 0 3 1 3 1 3 1 2 0 4 1 4 3 5 2 1 0 5 4 5 2 2 0 5 10
출력 1
1 1 2 2 2 0
참고
누적 합 제약 조건이 전혀 없다면, $n - 1$개의 인접한 차이 각각이 독립적으로 $0$ 또는 $1$이 될 수 있으므로 정확히 $2^{n-1}$개의 배열이 존재합니다.
두 번째 테스트 케이스에서 $s_3 = 1$을 만족하는 유일한 배열은 $(0, 0, 1)$입니다.
세 번째 테스트 케이스에서 $s_2 = 0$ 때문에 $a_2 = 0$이 강제되며, 그 후 $a_3$은 $0$ 또는 $1$이 될 수 있습니다.
네 번째 테스트 케이스에서 조건을 만족하는 배열은 $(0, 1, 1, 1)$과 $(0, 0, 1, 2)$입니다.
다섯 번째 테스트 케이스에서 $s_5 = 4$를 만족하는 배열은 $(0, 0, 1, 1, 2)$와 $(0, 1, 1, 1, 1)$입니다.
여섯 번째 테스트 케이스에서 $s_2 = 0$ 때문에 $a_1 = a_2 = 0$이 강제되므로 $s_5 \le 6$입니다. 따라서 $s_5 = 10$이라는 제약 조건은 불가능합니다.