ADDGP  Enjoy Adding GP to Series
You are initially given an empty array of Size N (<=100000). (i.e. each element is 0).
Given 2 <= R <=10^{9}.
Now you are given 3 types of query:
 "0 St i1 i2": means add (St, St*R , St*R^2 ,....) GP from i1 to i2 respectively. (Means add the GP with start term St and common ratio R in the series begining from i1 and ending at i2.)
 "1 i j": means find the sum of values of the array from index i to index j with modulo 1000000007.
 "2 i": resets the ith index array to 0.
Constraints
Queries <=90000
1 <= St <= 10^{9}
Input
First Line contains N R Q.
Then Follows Q lines, each line can be of any 3 types described above.
Output
Output only second type of Query.
Example
Input:
2 2 3
0 2 1 2
1 1 2
1 2 2
Output:
6
4
hide comments
praval_singhal:
20160519 10:53:47
Getting WA on testcase 10. Plz Help.


ashish kumar:
20151221 10:33:34
After So many many silly mistakes finally AC , feeling relaxed :) 

ashish kumar:
20151221 09:00:18
My solution is giving WA on 10th testcase. 

Akashdeep Goel:
20151210 04:48:38
Kindly tell where my code is Wrong ...I have figured correct logic and debugged all silly mistakes..Spent so much time on this :( Last edit: 20151210 04:48:50 

Maroof:
20150626 06:21:37
Last edit: 20150626 12:32:51 
Added by:  devu 
Date:  20130830 
Time limit:  2s 
Source limit:  50000B 
Memory limit:  1536MB 
Cluster:  Cube (Intel G860) 
Languages:  All except: ASM64 
Resource:  Own Problem 