题目描述
Cirno 有一个有向无环图(DAG),包含 个节点和 条边。图中恰好有一个节点没有出边。第 个节点上有一个整数 。
每秒会发生以下操作:
- 设 为所有满足 的节点 的集合。
- 对于所有 , 减去 ,然后对于每个节点 ,如果存在一条从 到 的边, 加上 。
求第一次所有 变为 的时刻。由于答案可能非常大,输出其对 取模的结果。
输入格式
第一行包含一个整数 —— 测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含两个整数 , —— 图中节点的数量和边的数量。
每个测试用例的第二行包含 个整数 ,,, —— 节点上的整数。
接下来的 行,每行包含两个整数 , ,表示一条从 到 的有向边。保证图是一个没有重边的 DAG,并且恰好有一个节点没有出边。
保证所有测试用例的 之和与 之和均不超过 。
输出格式
对于每个测试用例,在一行中输出一个整数——第一次所有 变为 的时刻,对 取模。
样例
5
3 2
1 1 1
1 2
2 3
5 5
1 0 0 0 0
1 2
2 3
3 4
4 5
1 5
10 11
998244353 0 0 0 998244353 0 0 0 0 0
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
1 3
7 9
5 6
1293 1145 9961 9961 1919
1 2
2 3
3 4
5 4
1 4
2 4
6 9
10 10 10 10 10 10
1 2
1 3
2 3
4 3
6 3
3 5
6 5
6 1
6 2
3
5
4
28010
110
提示
样例1解释
在第一个测试用例中:
- 在时刻 ,节点的值为 。
- 在时刻 ,节点的值为 。
- 在时刻 ,节点的值为 。
- 在时刻 ,节点的值为 。
因此答案为 。
在第二个测试用例中:
- 在时刻 ,节点的值为 。
- 在时刻 ,节点的值为 。
- 在时刻 ,节点的值为 。
- 在时刻 ,节点的值为 。
- 在时刻 ,节点的值为 。
- 在时刻 ,节点的值为 ]。
因此答案为 。
在第三个测试用例中:
所有 首次变为 的时刻是 。