题目描述
打印满足以下条件的序列 a 的数量,其中 a 是 (1,2,3,…,N) 的排列:
- 对于每个满足 1≤i≤M 的整数,至多 Zi 个数在 a1,a2,a3,…,aXi 中小于或等于 Yi。
约束条件
- 2≤N≤18
- 0≤M≤100
- 1≤Xi<N
- 1≤Yi<N
- 0≤Zi<N
- 输入中的所有值均为整数。
输入
输入以以下格式从标准输入中给出:
N M
X1 Y1 Z1
X2 Y2 Z2
X3 Y3 Z3
⋮
XM YM ZM
输出
打印答案。
示例输入 1
3 1
2 2 1
示例输出 1
4
满足条件的四个序列 a 为:
- (1,3,2)
- (2,3,1)
- (3,1,2)
- (3,2,1)
(1,2,3) 和 (2,1,3) 违反了条件,因为它们中的每个序列都有两个数小于或等于 2。
示例输入 2
5 2
3 3 2
4 4 3
示例输出 2
90
示例输入 3
18 0
示例输出 3
6402373705728000