#89. 青蛙遇上算数难题全体青蛙日夜不停计算

青蛙遇上算数难题全体青蛙日夜不停计算

C 青蛙遇上算数难题全体青蛙日夜不停计算

题目描述

青蛙计算中心得到了一个长度为 nn 的序列 aa

青蛙计算中心需要算出这个序列的每一个区间的和,然后再求和得到最终的结果。

毕竟是蛙脑计算,未免产生错误,于是会有 mm 种错误发生。

每种错误以 x,yx,y 来描述,表示计算 [l,r][l,r] 的区间和时,如果有 llrr 其中至少一个是 xx,那么这个区间和就不能计算 aya_y 的值。

答案需要对 109+710^9+7 取模。

输入格式

第一行两个整数 n,mn,m

第二行 nn 个整数,表示输入序列 aa

接下来 mm 行,每行两个整数 x,yx,y ,代表一个错误。

输出格式

一个整数,表示答案对 109+710^9+7 取模后的值。

样例输入

5 5
1 2 3 4 5
1 2
2 3
4 3
3 4
4 5

样例输出

69

数据范围

对于前 10%10\% 的数据: n,m100,ai10n,m\leq 100,a_i\leq 10

对于前 60%60\% 的数据: n,m5000,ai10n,m\leq 5000,a_i\leq10

对于另外 20%20\% 的数据:m=0m=0

对于 100%100\% 的数据: n,m106,0<ai<109+7,1x,ynn,m\leq 10^6,0<a_i<10^9+7,1\leq x,y \leq n

数据保证错误两两不同。

样例解释:

1+1+4+5+13+2+2+6+11+3+0+8+4+4+5=691+1+4+5+13+2+2+6+11+3+0+8+4+4+5=69