#abc199e. [abc199_e]Permutation

[abc199_e]Permutation

题目描述

打印满足以下条件的序列 aa 的数量,其中 aa(1,2,3,,N)(1, 2, 3, \dots, N) 的排列:

  • 对于每个满足 1iM1 \le i \le M 的整数,至多 ZiZ_i 个数在 a1,a2,a3,,aXia_1, a_2, a_3, \dots, a_{X_i} 中小于或等于 YiY_i

约束条件

  • 2N182 \le N \le 18
  • 0M1000 \le M \le 100
  • 1Xi<N1 \le X_i < N
  • 1Yi<N1 \le Y_i < N
  • 0Zi<N0 \le Z_i < N
  • 输入中的所有值均为整数。

输入

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

NN MM X1X_1 Y1Y_1 Z1Z_1 X2X_2 Y2Y_2 Z2Z_2 X3X_3 Y3Y_3 Z3Z_3 \hspace{23pt} \vdots XMX_M YMY_M ZMZ_M

输出

打印答案。


示例输入 1

3 1
2 2 1

示例输出 1

4

满足条件的四个序列 aa 为:

  • (1,3,2)(1, 3, 2)
  • (2,3,1)(2, 3, 1)
  • (3,1,2)(3, 1, 2)
  • (3,2,1)(3, 2, 1)

(1,2,3)(1, 2, 3)(2,1,3)(2, 1, 3) 违反了条件,因为它们中的每个序列都有两个数小于或等于 22


示例输入 2

5 2
3 3 2
4 4 3

示例输出 2

90

示例输入 3

18 0

示例输出 3

6402373705728000