問題文
長さ N の整数列 A があります。
あなたは今からこの数列について Q 個のクエリを処理します。i 番目のクエリでは、 Ti,Xi,Yi が与えられるので、以下の処理をしてください。
- Ti=1 のとき
AXi を AXioplusYi で置き換える
- Ti=2 のとき
$A_{X_i} \\oplus A_{X_i + 1} \\oplus A_{X_i + 2} \\oplus \\dots \\oplus A_{Y_i}$ を出力する
ただし aoplusb は a と b のビット単位 xor を表します。
ビット単位 xor とは
整数 A,B のビット単位 xor 、AoplusB は、以下のように定義されます。
- AoplusB を二進表記した際の 2k (kgeq0) の位の数は、A,B を二進表記した際の 2k の位の数のうち一方のみが 1 であれば 1、そうでなければ 0 である。
例えば、3oplus5=6 となります (二進表記すると: 011oplus101=110)。
制約
- 1leNle300000
- 1leQle300000
- 0leAilt230
- Ti は 1 または 2
- Ti=1 なら 1leXileN かつ 0leYilt230
- Ti=2 なら 1leXileYileN
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
N Q
$A_1 \\hspace{7pt} A_2 \\hspace{7pt} A_3 \\hspace{5pt} \\dots \\hspace{5pt} A_N$
T1 X1 Y1
T2 X2 Y2
T3 X3 Y3
hspace22ptvdots
TQ XQ YQ
出力
Ti=2 であるような各クエリについて、答えを 1 行に 1 つずつ、順に出力せよ。
入力例 1
3 4
1 2 3
2 1 3
2 2 3
1 2 3
2 2 3
出力例 1
0
1
2
1 個目のクエリでは 1oplus2oplus3=0 を出力します。
2 個目のクエリでは 2oplus3=1 を出力します。
3 個目のクエリでは A2 が 2oplus3=1 で置き換えられます。
4 個目のクエリでは 1oplus3=2 を出力します。
入力例 2
10 10
0 5 3 4 7 0 0 0 1 0
1 10 7
2 8 9
2 3 6
2 1 6
2 1 10
1 9 4
1 6 1
1 6 3
1 1 7
2 3 5
出力例 2
1
0
5
3
0