男神zyh的青睐
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

这一天,学霸大帅哥zyh带着m个迷妹出门游玩,他们来到一个游乐园,这里有一个游戏是测试俩人的幸运度的。
在他们面前排列着n个糖果,下标从1开始,每个糖果都有一个颜色ai。
游戏的内容是这样的:在每一轮游戏中,zyh会选择下标从l1到r1区间中的糖果中的一个,迷妹会选择l2到r2区间中的糖果中的一个。
(注,zyh选过的糖果迷妹是可以再选的)
我们认为一个迷妹是幸运的,当且仅当抽到的糖果颜色与zyh的相同,求每个迷妹辛运的概率,对1e9+7取模。
对1e9+7取模的含义是:对于一个b不为0的不可约分数,存在q使得b*q mod (1e9+7) = a,q即a/b对1e9+7取模的结果。

输入描述:

第一行为俩个整数n和m(1 <= n,m<= 5e4)。代表n个糖果和m个迷妹。
第二行输入n个糖果的颜色ai(1 <= ai <= 5e4)。
接下来m行,每行有四个整数l1,r1,l2,r2代表zyh选择的区间和迷妹选择的区间(l1<=r1,l2<=r2,1<=l1,r1,l2,r2<=n)。

输出描述:

共m行。每一行代表该迷妹幸运的概率,结果对1e9+7取模。
示例1

输入

复制
5 3
1 2 2 3 3
1 4 1 5
2 3 4 5
2 3 2 2

输出

复制
950000007
0
1

说明

第一个迷妹,一共会有20种情况,其中有7种会选到一样的颜色,所以概率是7/20=0.35,在模1e9+7的情况下为950000007。
第二个迷妹,无论怎么样都只能选到颜色3的糖果,而zyh只会选到颜色2的糖果,所以幸运概率为0。
第三个迷妹,俩人均只会抽到颜色2的糖果,所以概率是1。
示例2

输入

复制
3 3
1 1 2
1 2 2 3
1 3 1 3
1 2 1 3

输出

复制
500000004
555555560
666666672

说明



备注: