Time Limit : sec, Memory Limit : KB
Japanese

J: Range Xor Query

問題

長さ $N$ の数列 $A = (A_1, A_2, \dots, A_N)$ が与えられます。

以下の形式のクエリが $Q$ 個与えられます。順に処理してください。

  • 1 k x : $A_k$ を $A_k \oplus x$ で更新する。
  • 2 l r x : $l \leq i \leq r$ を満たす $i$ において $A_i \oplus x$ の最小値を出力する。この操作では $A$ の値は更新されないことに注意してください。

入力形式

入力は以下の形式で標準入力から与えられます。

$N$ $Q$
$A_1$ $A_2$ $\dots$ $A_N$
$query_1$
$query_2$
$\vdots$
$query_Q$

制約

  • $1 \leq N \leq 200{,}000$
  • $1 \leq Q \leq 200{,}000$
  • $1 \leq A_i \leq 1{,}000$
  • $1 \leq x \leq 1{,}000$
  • $1 \leq k \leq N$
  • $1 \leq l \leq r \leq N$
  • 入力はすべて整数

出力形式

2 l r x のクエリがくるたびに、答えを出力し、改行してください。

入力例 1

5 3
1 2 3 4 5
2 1 5 5
1 5 5
2 1 5 5

出力例 1

0
1

入力例 2

10 10
4 5 2 7 8 3 2 2 1 7
2 1 4 9
2 5 6 2
1 4 5
1 2 6
2 7 8 3
2 5 5 9
1 9 5
1 5 10
2 8 8 4
2 1 2 1

出力例 2

11
1
1
1
6
2