#5184. [Baltic2016]Spiral

内存限制:256 MiB 时间限制:30 Sec

题目描述

一个大小为(2n+1)*(2n+1)的方格按照如下方法构造。数字1放在正方形的中间,数字2放在1的右边,接下来的数字
按照逆时针的顺序填充这个方格。你需要计算q个询问的答案,每个询问查询一个矩形内的数的和,结果对10^9+7
取模。比如n=2的方格中,灰色区域的数的和是74:
 

输入格式

输入的第一行包含2个整数n,q:方格的大小和询问的数量。
接下来的q行每行包含4个整数x1,y1,x2,y2(-n<=x1<=x2<=n,-n<=y1<=y2<=n)。
表示你要计算的矩形区域的两个角落的坐标为(x1,y1)(x2,y2)
1<=N<=10^9
1<=q<=100

输出格式

每个询问输出一行答案

样例

样例输入


			
2 3
0 -2 1 1
-1 0 1 0
1 2 1 2

样例输出


			
74
9
14

数据范围与提示