D. LuoTianyi and the Functiontime limit per test7 secondsmemory limit per test1024 megabytesinputstandard inputoutputstandard outputLuoTianyi gives you an array a of n integers and the index begins from 1.Define g(i,j) as follows:  g(i,j) is the largest integer x that satisfies \{a_p:i\le p\le j\}\subseteq\{a_q:x\le q\le j\} while i \le j;  and g(i,j)=0 while i>j. There are q queries. For each query you are given four integers l,r,x,y, you need to calculate \sum\limits_{i=l}^{r}\sum\limits_{j=x}^{y}g(i,j).InputThe first line contains two integers n and q (1\le n,q\le 10^6) — the length of the array a and the number of queries.The second line contains n integers a_1,a_2,\ldots,a_n (1\le a_i\le n) — the elements of the array a.Next q lines describe a query. The i-th line contains four integers l,r,x,y (1\le l\le r\le n, 1\le x\le y\le n) — the integers in the i-th query.OutputPrint q lines where i-th line contains one integer — the answer for the i-th query.ExamplesInput
6 4
1 2 2 1 3 4
1 1 4 5
2 3 3 3
3 6 1 2
6 6 6 6
Output
6
6
0
6
Input
10 5
10 2 8 10 9 8 2 1 1 8
1 1 10 10
2 2 3 3
6 6 6 6
1 1 4 5
4 8 4 8
Output
4
2
6
4
80
NoteIn the first example:In the first query, the answer is g(1,4)+g(1,5)=3+3=6.x=1,2,3 can satisfies \{a_p:1\le p\le 4\}\subseteq\{a_q:x\le q\le 4\}, 3 is the largest integer so g(1,4)=3.In the second query, the answer is g(2,3)+g(3,3)=3+3=6.In the third query, the answer is 0, because all i > j and g(i,j)=0.In the fourth query, the answer is g(6,6)=6.In the second example:In the second query, the answer is g(2,3)=2.In the fourth query, the answer is g(1,4)+g(1,5)=2+2=4.
6 4
1 2 2 1 3 4
1 1 4 5
2 3 3 3
3 6 1 2
6 6 6 6

6 6 0 6 
['data structures', '*3000']