#ARC176C. 最大值排列

最大值排列

最大值排列

时间限制:2s
空间限制:512MB

题目描述

求排列 P=(P1,P2,…,PN)P=(P_1,P_2,\ldots,P_N) 的数量,使得它是 1,2,…,N1,2,\ldots,N 的一个排列,并满足下面的 MM 条限制:

max⁡(PAi,PBi)=Ci(1≤i≤M).\max(P_{A_i},P_{B_i})=C_i\qquad(1\le i\le M).

答案对 998244353998244353 取模。

输入格式

第一行两个整数 N,MN,M。接下来 MM 行,每行三个整数 Ai,Bi,CiA_i,B_i,C_i。

输出格式

输出满足全部限制的排列数量对 998244353998244353 取模的结果。

样例输入 1

4 2
1 2 4
2 3 2

样例输出 1

2

样例输入 2

6 3
1 4 3
2 5 6
3 4 2

样例输出 2

8

样例解释

样例一中满足条件的排列为 (4,1,2,3)(4,1,2,3) 与 (4,2,1,3)(4,2,1,3)。

数据范围

  • 2≤N≤2×1052\le N\le 2\times 10^5;
  • 1≤M≤2×1051\le M\le 2\times 10^5;
  • 1≤Ai<Bi≤N1\le A_i<B_i\le N,1≤Ci≤N1\le C_i\le N;
  • 任意两条限制对应的有序对 (Ai,Bi)(A_i,B_i) 互不相同。
子任务编号 分值 特殊限制
1 10 N≤9N\le 9
2 15 M=1M=1
3 20 任意两条限制涉及的端点互不相同
4 25 N,M≤2000N,M\le 2000
5 30 无特殊限制