#P0910. 满足条件的数

满足条件的数

题目描述

一个长度为 nn 的大数,用 S1S2S3SnS_1S_2S_3 \cdots S_n表示,其中 SiS_i 表示数的第 ii 位, S1S_1 是数的最高位。告诉你一些限制条件,每个条件表示为四个数,l1,r1,l2,r2l_1,r_1,l_2,r_2,即两个长度相同的区间,表示子串 Sl1Sl1+1Sl1+2Sr1S_{l_1}S_{l_1+1}S_{l_1+2} \cdots S_{r_1}Sl2Sl2+1Sl2+2Sr2S_{l_2}S_{l_2+1}S_{l_2+2} \cdots S_{r_2} 完全相同。

比如 n=6n=6 时,某限制条件 l1=1,r1=3,l2=4,r2=6l_1=1,r_1=3,l_2=4,r_2=6 ,那么 123123123123351351351351 均满足条件,但是 1201212012131141131141 不满足条件,前者数的长度不为 66 ,后者第二位与第五位不同。问满足以上所有条件的数有多少个。

输入格式

第一行两个数 nnmm,分别表示大数的长度,以及限制条件的个数(1n105,1m1051 \le n \le 10^5, 1 \le m \le 10^5)。

接下来 mm 行,每行包含四个整数 l1,r1,l2,r2l_1, r_1, l_2, r_2,分别表示一组限制条件对应的两个区间(1l1,r1,l2,r2n1 \le l_1, r_1, l_2, r_2 \le n ;并且保证 r1l1=r2l2r_1-l_1 = r_2 - l_2)。

输出格式

输出一个整数,表示满足所有条件且长度为 nn 的大数的个数,答案可能很大,因此输出答案模 109+710^9+7 的结果即可。

注意:满足条件的数必须是一个 nn 位数,这就意味着最高位 S10S_1 \neq 0

样例

4 2
1 2 3 4
3 3 3 3
90
6 3
1 2 3 4
3 4 5 6
1 3 4 6
9