Given an integer array A of size N, you need to perform 2 operations over this array :
\( 0\space L \space R \) : Find and print \( A[L]\) xor \(A[L+1]\) xor \(A[L+2]\) ... xor \(A[R]\)
\( 1 \space X \space Y \) : Update the value of the \(X^{th}\) element of array A, i.e \(A[X]\) to \((A[X] \) XOR Y) . That is, after the update the value of the element shall be (\(A[X]\) XOR Y).
Can you do it ?
Input Format :
The first line contains a single integer N denoting the size of array A. The next line contains N space separated integers, where the \(i^{th}\) element denotes \(A[i]\). The third line contains the number of operations Q and then each of the remaining Q lines contain three space separated integers, where the \(i^{th}\) line denotes the parameters of the \(i^{th}\) query.
Output Format :
For each operation of the form \(0 \space L \space R\), display the answer for the operation in a separate line.
Input Constraints:
\( 1 \le N \le 10^6 \)
\( 1 \le Q \le 10^5 \)
\( 0 \le A[i] \le 10^6 \)
\( 1 \le L \le R \le N \)
\( 1 \le X \le N \)
\( 1 \le Y \le 10^6 \)