Another Query on Array Problem
Given an array of integers $A_1, A_2, \ldots , A_ N$ and the initial value of all elements are $0$. Now you are given $M$ queries, each belongs to one of three following types:

$0$ $x$ $y$: Find the sum of all elements from index $x$ to index $y$ modulo $10^9+7$

$1$ $x$ $y$: Add $1 \times 2 \times 3$ to $A_ x$, add $2 \times 3 \times 4$ to $A_{x+1}$, …, add $(i+1) \times (i + 2) \times (i+3)$ to $A_{x+i}$ and so on until $A_ y$

$2$ $x$ $y$: Subtract $1 \times 2 \times 3$ from $A_ x$, subtract $2 \times 3 \times 4$ from $A_{x+1}$, …, subtract $(i+1) \times (i+2) \times (i+3)$ from $A_{x+i}$ and so on until $A_ y$
Input
The first line contains two integers $N$ and $M$ ($1 \leq N, M \leq 10^5$)  the size of the array and the number of queries, respectively.
Each of the next M lines containts three integers $t$ $x$ $y$ denotes type and range of the query.
Output
For each query of type $0$, print the required answer in a single line.
Sample Clarification
In the example below:

After the first query, the array is $[6, 24, 60, 120, 210, 336, 504, 720]$.

The answer for the second query is $24+60+120+210+336+504+720=1\, 974$.

After the third query, the array is $[6, 24, 60, 114, 186, 276, 504, 720]$.

The answer for the last query is $186+276=462$
Sample Input 1  Sample Output 1 

8 4 1 1 8 0 2 8 2 4 6 0 5 6 
1974 462 