Vasya 想要构造一个长度为 $n$ 的非负实数数组 $a$。 他有 $m$ 个区间 $[l_1, r_1], [l_2, r_2], \dots, [l_m, r_m]$ ($1 \le l_i \le r_i \le n$),定义了数组 $a$ 的 $m$ 个子数组。 我们定义数组 $a$ 的“散度”(spread)如下: 计算子数组和 $s_i = \sum_{j=l_i}^{r_i} a_j$。 数组 $a$ 的散度等于 $\frac{\max_{j=1}^m s_j}{\min_{j=1}^m s_j}$。如果 $\min_{j=1}^m s_j = 0$,则散度为 $+\infty$。
求所有可能数组 $a$ 中的最小散度。保证最小散度存在。你需要输出答案对 $998244353$ 取模的结果。 我们可以证明每个答案都可以写成 $\frac{p}{q}$ 的形式,其中 $p$ 和 $q$ 是互质的整数,且 $q \not\equiv 0 \pmod{998244353}$。答案对 $998244353$ 取模的结果等于 $(p \cdot q^{-1}) \pmod{998244353}$。
输入格式
输入包含多个测试用例。第一行包含一个整数 $t$ ($1 \le t \le 2000$) —— 测试用例的数量。接下来是各测试用例的描述。 每个测试用例的第一行包含两个整数 $n, m$ ($1 \le n \le 10^9, 1 \le m \le 2000$) —— 数组大小和区间数量。 接下来的 $m$ 行,每行包含两个整数 $l_i, r_i$ ($1 \le l_i \le r_i \le n$) —— 第 $i$ 个区间的描述。 保证所有测试用例的 $m$ 之和不超过 $2000$。
输出格式
对于每个测试用例,输出一个整数 —— 该问题的答案对 $998244353$ 取模的结果。
样例
输入 1
3 3 3 1 3 2 3 1 2 12 6 2 3 5 7 1 9 4 8 1 2 7 11 4 5 3 4 2 3 1 2 4 4 1 1
输出 1
1 2 499122178
说明
在第一个测试用例中,最小散度为 $1$,例如当 $a = [0, 3, 0]$ 时可以达到。子数组和为 $s = [3, 3, 3]$。 在第二个测试用例中,最小散度为 $2$,例如当 $a = [0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0]$ 时可以达到。子数组和为 $s = [1, 1, 2, 1, 1, 2]$。 在第三个测试用例中,最小散度为 $\frac{3}{2}$,例如当 $a = [2, 1, 1, 2]$ 时可以达到。子数组和为 $s = [3, 2, 3, 2, 2]$。