题目描述
给定一个 h 行 w 列的网格,每个单元格需填入 [1,m] 范围内的整数。存在 n 条约束,每条约束指定一个子矩阵(左上角 (x1,y1),右下角 (x2,y2)),要求该子矩阵内所有单元格的最大值恰好等于 v。形式化地,设网格矩阵为 A,Ai,j 表示第 i 行第 j 列的值,每条约束要求:
$$\max\{A_{i,j} \mid x_1 \leq i \leq x_2,\ y_1 \leq j \leq y_2\} = v
$$
计算满足所有约束的网格填数方案数量,结果对 109+7 取模。
输入格式
第一行输入四个整数 h,w,m,n (1≤h,w,m≤10000, 0≤n≤10),分别表示网格行数、列数、数值上限、约束数。
接下来 n 行,每行五个整数 x1,y1,x2,y2,v (1≤x1,x2≤h, 1≤y1,y2≤w, 1≤v≤m),描述一条约束。
输出格式
一行一个整数,表示方案数模 109+7 的结果。
样例输入
2 3 2 1
1 2 2 3 2
样例输出
60
数据范围
对于 20% 的数据,h,w,n,m≤3;
另有 10% 的数据满足 n=0;
另有 20% 的数据满足 n=1;
对于 100% 的数据,h,w,n,m≤10000,1≤v≤m,0≤n≤10。