#atabc470c. XOR

XOR

问题陈述

有一个长度为 NN 的整数序列 A=(A1,A2,,AN)A=(A_1,A_2,\ldots,A_N) 。最初, AA 的所有元素都是 00

您将收到 QQ 个查询,这些查询应按顺序处理。查询有两种类型,每种都以下列格式之一给出:

  • 1 x :将 AxA_x 的值增加 11
  • 2 :对于每个 i=1,2,,Ni=1,2,\ldots,N 如果是 Ai1A_i \geq 1 ,则将 AiA_i 的值减少 11

在处理完每个查询后,立即查找 A1,A2,,ANA_1,A_2,\ldots,A_N 的位 XOR\mathrm{XOR}

什么是位向 XOR\mathrm{XOR}

非负整数 AABB 的位向 XOR\mathrm{XOR} 表示为 ABA \oplus B ,其定义如下:

  • ABA \oplus B 的二进制表示中,如果 AABB 的二进制表示中 2k2^k 位的数字中正好有一位是 11 ,则 2k2^kk0k \geq 0 )位的数字是 11 ,否则是 00

例如, 35=63 \oplus 5 = 6 (二进制: 011101=110011 \oplus 101 = 110 )。
更一般地说, kk 非负整数 p1,p2,p3,,pkp_1, p_2, p_3, \dots, p_k 的比特 XOR\mathrm{XOR} 定义为 $(\dots ((p_1 \oplus p_2) \oplus p_3) \oplus \dots \oplus p_k)$ ,可以证明这个值与 p1,p2,p3,,pkp_1, p_2, p_3, \dots, p_k 的阶数无关。

约束条件

  • 1N5×1051\le N\le 5\times 10^5
  • 1Q5×1051\le Q\le 5\times 10^5
  • 1xN1\le x\le N
  • 所有输入值均为整数。

输入

输入内容由标准输入法提供,格式如下

$N$ $Q$
$\text{query}_1$
$\text{query}_2$
$\vdots$
$\text{query}_Q$

每个查询以下列 22 格式之一给出:

$1$ $x$
$2$

输出

输出 QQ 行。

在处理完 ii }-th 查询后, ii -行 (1iQ)(1\le i\le Q) 应该立即包含 A1,A2,,ANA_1,A_2,\ldots,A_N for AA 的比特 XOR\mathrm{XOR}


输入示例 1

2 5
1 2
1 2
1 1
2
2

样本输出 1

1
2
3
1
0

处理完第一个查询后,输出 A=(0,1)A=(0,1)0,10,1 的比特 XOR\mathrm{XOR}11 ,因此在第一行输出 11

处理第二个查询后, A=(0,2)A=(0,2)0,20,2 的位向 XOR\mathrm{XOR}22 ,因此在第二行输出 22

处理完第三个查询后, A=(1,2)A=(1,2)1,21,2 的位向 XOR\mathrm{XOR}33 ,因此在第三行输出 33

处理完第四个查询后, A=(0,1)A=(0,1)0,10,1 的比特 XOR\mathrm{XOR}11 ,因此在第四行输出 11

处理完第五个查询后, A=(0,0)A=(0,0)0,00,0 的比特 XOR\mathrm{XOR}00 ,因此在第五行输出 00


输入示例 2

3 8
1 2
1 3
1 1
1 2
1 1
2
1 3
1 1

输出样本 2

1
0
1
2
1
0
1
2