#CF1830C. 超正则括号序列

    ID: 6270 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 1 上传者: 标签>组合数学其他数学贪心树结构树哈希数论排序*2400

超正则括号序列

C. 超正则括号序列

时间限制:3 秒
内存限制:256 MB

给你一个整数 nnkk 个区间。第 ii 个区间为 [li,ri][l_i, r_i],满足 1lirin1 \le l_i \le r_i \le n

如果一个长度为 nn正则括号序列†‡ 满足:对于每个 1ik1 \le i \le k,子串 slisli+1sris_{l_i} s_{l_i+1} \dots s_{r_i} 也是正则括号序列,则称它是超正则的。

你的任务是统计超正则括号序列的数量。由于这个数字可能很大,你只需要输出它对 998244353998244353 取模的结果。

† 括号序列是一个只包含字符 "("")" 的字符串。

‡ 如果一个括号序列可以通过添加字符 +1 变成合法的数学表达式,则称它是正则的。例如,(())()()(()(())) 和空串都是正则的,而 )((()(()))( 不是。


输入格式

每个测试点包含多个测试用例。第一行包含一个整数 tt1t1051 \le t \le 10^5)—— 测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含两个整数 nnkk1n31051 \le n \le 3 \cdot 10^50k31050 \le k \le 3 \cdot 10^5)—— 超正则括号序列的长度和区间的数量。

接下来的 kk 行,每行包含两个整数 lil_irir_i1lirin1 \le l_i \le r_i \le n)。

数据保证:所有测试用例的 nn 之和不超过 31053 \cdot 10^5,所有测试用例的 kk 之和不超过 31053 \cdot 10^5


输出格式

对于每个测试用例,输出一个整数,表示超正则括号序列的数量对 998244353998244353 取模的结果。


示例

输入

7
6 0
5 0
8 1
1 3
10 2
3 4
6 9
1000 3
100 701
200 801
300 901
28 5
1 12
3 20
11 14
4 9
18 19
4 3
1 4
1 4
1 4

输出

5
0
0
4
839415253
140
2

样例解释

第一个测试用例:长度为 66 的 5 个超正则括号序列是:
((()))(()())(())()()(())()()()

第二个测试用例:不存在长度为 55 的正则括号序列,因此也不存在超正则括号序列。

第三个测试用例:不存在长度为 88 且子串 [1,3][1,3] 是正则括号序列的超正则括号序列。

第四个测试用例:4 个超正则括号序列是:
((())(()))((())()())()()((()))()()(()())