Let’s denote d(n) as the number of divisors of a positive integer n. You are given three integers a, b and c. Your task is to calculate the following sum: ∑i=1a∑j=1b∑k=1cd(i⋅j⋅k)
Find the sum modulo 1073741824(230).
Input
The first line contains three space-separated integers a, b and c(1≤a,b,c≤2000).
Output
Print a single integer — the required sum modulo 1073741824(230).
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.