给定一个长为 $n$ 的括号序列,每个位置有一个括号 $a_i$,其中 $a_i=1$ 代表是左括号 $'('$,$a_i=0$ 代表是右括号 $')'$。 $a_i$ 位置的括号有一个权值 $b_i$。
对任意括号序列,通过不断删除形如 $'()'$ 的子段直到无法操作,最终可以得到一个唯一的序列,这个序列称为不匹配括号,如 $a_1=')',a_2='(',a_3='(',a_4=')',a_5='('$,这个括号序列的不匹配括号序列为 $')(('$,其不匹配括号对应位置为 $1,2,5$,其不匹配括号对应位置的 $b$ 为 $b_1,b_2,b_5$。
有 $m$ 次操作,操作有以下三类:
1 x y
:进行单点修改,即 $a_x:=1-a_x; b_x:=y$。
2 l r
:求 $a[l..r]$ 中不匹配括号对应位置的 $b$ 从左到右的 $\texttt {NAND}$ ($32$ 位的按位与非,可以见 https://en.wikipedia.org/wiki/NAND_logic ), $\texttt {max}$(最大值) ,将二者 $\texttt {xor}$ 后输出。如果不匹配括号为空序列,则 $\texttt {NAND}$ 的答案为 $2^{32}-1$, $\texttt {max}$ 的答案为 $0$。
$\texttt {NAND}$ 即以 $c_0=2^{32}-1$ 为初值,然后依次 $c_i=\texttt {NAND}(c_{i-1},b_i)$,对于一个 $n$ 个值的序列 $b$,最后答案为 $c_n$。
3 l r
:将 $a[l..r]$ 和 $a[r+1..n]$ 交换位置,$b$ 也做同样的操作。
输入格式
第一行用空格隔开的两个数 $n,m$。
之后 $n$ 行每行用空格隔开的两个数,第 $i$ 行为 $a_i,b_i$。
之后 $m$ 行,每行表示一个操作。
输出格式
对每个操作 $2$ 输出一行表示答案。
样例数据
样例输入
10 10
0 1
1 9
1 2
0 5
1 1
0 6
1 1
0 4
0 8
1 7
2 5 7
3 1 10
1 1 3
2 1 3
3 2 9
3 4 10
3 7 8
1 10 2
3 3 4
2 5 7
样例输出
4294967295
4294967284
4294967281
子任务
Idea:ccz181078,Solution:ccz181078,Code:ccz181078,Data:nzhtl1477
对于 $100\%$ 的数据,
$0 \le a[i] \le 1$。
$0 \le b[i] \le 10^9$。
$1 \le n \le 2\times10^6,1 \le m \le 2\times10^5$。