#abc261e. [abc261_e]Many Operations

[abc261_e]Many Operations

问题陈述

我们有一个变量XXNN种操作,可以改变XX的值。操作ii表示为一对整数(Ti,Ai)(T_i,A_i),具体操作如下:

  • 如果Ti=1T_i=1,它用X {rmand} AiX\ \{\\rm and\}\ A_i替换XX的值;
  • 如果Ti=2T_i=2,它用X {rmor} AiX\ \{\\rm or\}\ A_i替换XX的值;
  • 如果Ti=3T_i=3,它用X {rmxor} AiX\ \{\\rm xor\}\ A_i替换XX的值。

初始化XX的值为CC,按照以下顺序执行以下步骤:

  • 执行操作11,然后打印XX的结果值。
  • 然后,按照顺序执行操作1,21,2,然后打印XX的值。
  • 然后,按照顺序执行操作1,2,31,2,3,然后打印XX的值。
  • \vdots
  • 然后,按照顺序执行操作1,2,,N1,2,\ldots,N,然后打印XX的值。

什么是rmand,rmor,rmxor{\\rm and}, {\\rm or}, {\\rm xor}

对于非负整数AABBrmand,rmor,rmxor{\\rm and}, {\\rm or}, {\\rm xor}定义如下:

  • 当以二进制形式写出A rmand BA\ {\\rm and}\ B时,如果AABB的相同位上都是11,那么在2k2^k位置上(k0k \geq 0),值为11,否则为00
  • 当以二进制形式写出A rmor BA\ {\\rm or}\ B时,如果AABB的相同位上至少有一个是11,那么在2k2^k位置上(k0k \geq 0),值为11,否则为00
  • 当以二进制形式写出A rmxor BA\ {\\rm xor}\ B时,如果AABB的相同位上只有一个是11,那么在2k2^k位置上(k0k \geq 0),值为11,否则为00

例如,3 rmand 5=13\ {\\rm and}\ 5 = 13 rmor 5=73\ {\\rm or}\ 5 = 73 rmxor 5=63\ {\\rm xor}\ 5 = 6

约束条件

  • 1N2×1051 \leq N \leq 2\times 10^5
  • 1Ti31\leq T_i \leq 3
  • 0Ai<2300\leq A_i \lt 2^{30}
  • 0C<2300\leq C \lt 2^{30}
  • 输入中的所有值均为整数。

输入

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

NN CC T1T_1 A1A_1 T2T_2 A2A_2 \vdots TNT_N ANA_N

输出

按照问题陈述的要求,输出NN行。

样例输入 1

3 10
3 3
2 5
1 12

样例输出 1

9
15
12

XX的初始值为1010

  • 操作11XX更改为99
  • 接下来,操作11XX更改为1010,然后操作22将其更改为1515
  • 接下来,操作11XX更改为1212,然后操作22将其更改为1313,然后操作33将其更改为1212

样例输入 2

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

样例输出 2

0
2
1
0
5
3
3
11
2