#ABC470C. 自增、自减与异或 / Inc, Dec, Xor

自增、自减与异或 / Inc, Dec, 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 的二进制表示中,2k2^kk0k \geq 0)位上的数字为 11,当且仅当 AABB 的二进制表示中 2k2^k 位上的数字恰好有一个为 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
  • 所有输入值均为整数。

输入

输入按以下格式从标准输入给出:

  • NN QQ
  • query1\text{query}_1
  • query2\text{query}_2
  • \vdots
  • queryQ\text{query}_Q

每个查询为以下 22 种格式之一:

  • 11 xx
  • 22

输出

输出 QQ 行。

ii(1iQ)(1\le i\le Q) 输出处理完第 ii 个查询后 A1,A2,,ANA_1,A_2,\ldots,A_N 的按位 XOR\mathrm{XOR}

2 5
1 2
1 2
1 1
2
2
1
2
3
1
0

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

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

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

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

处理完第 5 个查询后,A=(0,0)A=(0,0)0,00,0 的按位 XOR\mathrm{XOR}00,因此第 5 行输出 00

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

子任务设置

  • 子任务 1(90 分):N,Q2000N,Q \le 2000
  • 子任务 2(210 分):无特殊限制。