問題文
変数 X と、X の値を変更する N 種類の操作があります。操作 i は整数の組 (Ti,Ai) で表され、意味は次の通りです。
- Ti=1 のとき、X の値を XrmandAi に置き換える。
- Ti=2 のとき、X の値を XrmorAi に置き換える。
- Ti=3 のとき、X の値を XrmxorAi に置き換える。
変数 X を値 C で初期化した状態から、以下の処理を順に実行してください。
- 操作 1 を行い、操作後の X の値を出力する。
- 続けて、操作 1,2 を順に行い、操作後の X の値を出力する。
- 続けて、操作 1,2,3 を順に行い、操作後の X の値を出力する。
- vdots
- 続けて、操作 1,2,ldots,N を順に行い、操作後の X の値を出力する。
rmand,rmor,rmxor とは 非負整数 A,B の rmand,rmor,rmxor は、以下のように定義されます。
- ArmandB を二進表記した際の 2k (kgeq0) の位の数は、A,B を二進表記した際の 2k の位の数のうち両方が 1 であれば 1、そうでなければ 0 である。
- ArmorB を二進表記した際の 2k (kgeq0) の位の数は、A,B を二進表記した際の 2k の位の数のうち少なくとも一方が 1 であれば 1、そうでなければ 0 である。
- ArmxorB を二進表記した際の 2k (kgeq0) の位の数は、A,B を二進表記した際の 2k の位の数のうちちょうど一方が 1 であれば 1、そうでなければ 0 である。
例えば、3rmand5=1、 3rmor5=7、 3rmxor5=6 となります。
制約
- 1leqNleq2times105
- 1leqTileq3
- 0leqAilt230
- 0leqClt230
- 入力に含まれる値は全て整数である
入力
入力は以下の形式で標準入力から与えられる。
N C
T1 A1
T2 A2
vdots
TN AN
出力
問題文中の指示に従って N 行出力せよ。
入力例 1
3 10
3 3
2 5
1 12
出力例 1
9
15
12
最初、X の値は 10 です。
- 操作 1 を行うと X の値は 9 になります。
- 続けて操作 1 を行うと X の値は 10 になり、さらに操作 2 を行うと 15 になります。
- 続けて操作 1 を行うと X の値は 12 になり、さらに操作 2 を行うと 13 に、さらに続けて操作 3 を行うと 12 になります。
入力例 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