对于一个由 $n$ 个正整数组成的序列 $a$,你可以进行若干次以下操作:
- 选择一个满足 $1 < i < n$ 且 $a_i > 1$ 的下标 $i$,将 $a_i$ 减去 $1$,并给 $a_{i-1}$ 和 $a_{i+1}$ 各加上 $1$。
如果一个由 $n$ 个正整数组成的序列可以通过若干次(可能为零次)上述操作,使得对于每个 $1 \le i \le n$ 都有 $a_i = 2$,则称该序列为“好的”。
现在你需要计算满足 $m$ 个约束的“好的”序列的数量。第 $i$ 个约束表示为一个二元组 $(x_i, y_i)$,要求 $a_{x_i} = y_i$。
可以证明答案是有限的。请输出答案对 $10^9 + 7$ 取模的结果。
输入格式
第一行包含一个整数 $T$ ($1 \le T \le 10$),表示测试用例的数量。
对于每个测试用例,第一行包含两个整数 $n, m$ ($1 \le n \le 10^{18}, 0 \le m \le \min(n, 100)$)。
接下来的 $m$ 行,每行包含两个整数。第 $i$ 行包含 $x_i, y_i$ ($1 \le x_1 < x_2 < \dots < x_m \le n, 1 \le y_i \le 10^9$)。
输出格式
对于每个测试用例,输出一行,包含一个整数,表示答案对 $10^9 + 7$ 取模的结果。
样例
样例输入 1
3 3 1 2 2 5 2 1 2 5 1 114514 0
样例输出 1
1 2 158552999