#bitflyer2018finalg. [bitflyer2018_final_g]Following Permutations

[bitflyer2018_final_g]Following Permutations

问题文

给定整数N和M个整数的三元组(Ai,Bi,Ci)(A_i, B_i, C_i) (1iM)(1 \leq i \leq M)。请计算满足以下条件的长度为N的排列p的数量(对109+710^9 + 7 取模):

  • 当对于所有的i (1iM)(1 \leq i \leq M),在将长度为N的排列按字典顺序排列后,存在一个排列q = [q1,q2,...,qN][q_1, q_2, ..., q_N]使得q在p后面第AiA_i个,并且qBi=Ciq_{B_i} = C_i

在上述条件中,当Ai=0A_i = 0时,q被认为是p本身。

约束条件

  • 1N501 \leq N \leq 50
  • 0M500 \leq M \leq 50
  • 0Ai500 \leq A_i \leq 50 (1iM)(1 \leq i \leq M)
  • AiN!1A_i \leq N! - 1 (1iM)(1 \leq i \leq M)
  • 1Bi,CiN1 \leq B_i, C_i \leq N (1iM)(1 \leq i \leq M)
  • 对于iji \neq jAiAjA_i \neq A_jBiBjB_i \neq B_jCiCjC_i \neq C_j

输入

输入以以下格式从标准输入中给出。

NN MM A1A_1 B1B_1 C1C_1 A2A_2 B2B_2 C2C_2 ... AMA_M BMB_M CMC_M

输出

输出答案。


示例输入 1

3 1
1 2 2

示例输出 1

1

1,2,31, 2, 3的排列按字典顺序排列得到 \[1, 2, 3\], \[1, 3, 2\], \[2, 1, 3\], \[2, 3, 1\], \[3, 1, 2\], \[3, 2, 1\]。满足条件的排列只有 \[3, 1, 2\]


示例输入 2

10 2
10 10 10
11 10 10

示例输出 2

0

示例输入 3

20 2
0 1 1
50 1 2

示例输出 3

50

示例输入 4

50 0

示例输出 4

318608048

示例输入 5

30 5
27 18 22
43 19 26
27 26 13
22 9 27
31 20 12

示例输出 5

440732388