qko的烦恼
题号:NC21666
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 24 M,其他语言48 M
64bit IO Format: %lld

题目描述


黄海同学最近迷上了黑白棋,而作为忠实挂件的qko则成为了黄海同学的陪练对象,黑白棋的规则很简单,初始旗子都是白色的,每一次操作黄海同学都能将[l,r]内的白色旗子变成黑色旗子(变黑以后就不能变白了咯!),每一次操作后黄海同学都会向qko询问剩下的白色旗子的个数 为了减少输出的规模 我们将每次询问后的值相乘后输出其在模1e9+7的答案

输入描述:

输入两个整数n(1<=n<=1000000),m(1<=m<=1000000),接下来输出m个区间[l,r],表示每次操作的区间,并且(1<=l<=r<=n)

输出描述:

输出一个数 表示每次操作后剩余白色节点的乘积在模1e9+7下的答案
示例1

输入

复制
10 3
3 3
5 7
2 8

输出

复制
162