You are given a positive integer n and a sequence a_1,a_2,…,a_n of positive integers, such that 2i(i−1)<a_i≤2i(i+1).
The sequence parameterizes a tree with 2(n+1)(n+2) vertices, consisting of n+1 levels with 1,2,…,n+1 vertices, in the following way:

The tree parameterized by a=(1,2,6).
The i-th level contains vertices 2i(i−1)+1,…,2i(i+1). The vertex a_i has two children, and the rest of the vertices on the level have one child each.
We want to answer q queries of the form “what is the largest common ancestor of x and y”, i.e. the vertex with the largest label which is an ancestor of both x and y.
The first line contains integers n, q and t (1≤n,q≤200000,t∈0,1), the number of parameters, the number of queries, and a value which will be used to determine the labels of vertices in the queries.
The second line contains a sequence of n integers a_i (2i(i−1)≤a_i≤2i(i+1)) which parameterize the tree.
The i-th of the following q lines contains two integers x~_i and y~_i (1≤x~_i,y~_i≤2(n+1)(n+2)) which will be used to determine the labels of vertices in the queries.
Let z_i be the answer to the i-th query, and let z_0=0. The labels in the i-th query x_i and y_i are:
x_i=((x~_i−1+t⋅z_i−1)mod2(n+1)(n+2))+1,
y_i=((y~_i−1+t⋅z_i−1)mod2(n+1)(n+2))+1,
where mod is the remainder of integer divison.
Remark: Note that if t=0, it holds x_i=x~_i and y_i=y~_i, so all queries are known from input. If t=1, the queries are not known in advance, but are determined using answers to previous queries.
Output q lines. In the i-th line, output the largest common ancestor of x_i and y_i.
Clarification of the examples: The tree from both examples is shown on the figure in the statement. Labels of verticies in queries in the second example are: x_1=7,y_1=10, x_2=9,y_2=6, x_3=2,y_3=8, x_4=1,y_4=2, x_5=3,y_5=4.