Seniorious is made by linking special talismans in particular order.
After over 500 years, the carillon is now in bad condition, so Willem decides to examine it thoroughly. Seniorious has n pieces of talisman. Willem puts them in a line, the ith of which is an integer ai.
In order to maintain it, Willem needs to perform m operations.
There are four types of operations:
lrx: For each i such that l≤i≤r, assign ai+x to ai.
lrx: For each i such that l≤i≤r, assign x to ai.
lrx: Print the xth smallest number in the index range [l,r], i.e. the element at the xth position if all the elements ai such that l≤i≤r are taken and sorted into an array of non-decreasing integers. It’s guaranteed that 1≤x≤r−l+1.
lrxy: Print the sum of the xth power of ai such that l≤i≤r, modulo y, i.e. (∑i=lraix)mody.
Input
The only line contains four integers n,m,seed,vmax (1≤n,m≤105,0≤seed<109+7,1≤vmax≤109).
The initial values and operations are generated using following pseudo code:
def rnd(): ret = seed seed = (seed * 7 + 13) mod 1000000007 return ret
for i = 1 to n: a[i] = (rnd() mod vmax) + 1
for i = 1 to m: op = (rnd() mod 4) + 1 l = (rnd() mod n) + 1 r = (rnd() mod n) + 1 if (l > r): swap(l, r) if (op == 3): x = (rnd() mod (r - l + 1)) + 1 else: x = (rnd() mod vmax) + 1 if (op == 4): y = (rnd() mod vmax) + 1
Here op is the type of the operation mentioned in the legend.
Output
For each operation of types 3 or 4, output a line containing the answer.
Example
Input 1
1
10 10 7 9
Output 1
1 2 3 4
2 1 0 3
Input 2
1
10 10 9 9
Output 2
1 2 3 4
1 1 3 3
Note
In the first example, the initial array is {8,9,7,2,3,1,5,6,4,8}.
The operations are: 2679 13108 44624 1458 2171 47944 1279 45811 2575 431085