AT_abc470_c [ABC470C] Inc, Dec, Xor
Description
長さ $ N $ の整数列 $ A=(A_1,A_2,\ldots,A_N) $ があります。はじめ、 $ A $ の要素は全て $ 0 $ です。
$ Q $ 個のクエリが与えられるので、順に処理してください。クエリは $ 2 $ 種類あり、以下のいずれかの形式で与えられます。
- `1 x`: $ A_x $ の値を $ 1 $ 増やす。
- `2`: $ i=1,2,\ldots,N $ に対し、 $ A_i \geq 1 $ ならば $ A_i $ の値を $ 1 $ 減らす。
各クエリを処理した直後の $ A_1,A_2,\ldots,A_N $ のビット単位 $ \mathrm{XOR} $ を求めてください。
ビット単位 $ \mathrm{XOR} $ 演算とは 非負整数 $ A, B $ のビット単位 $ \mathrm{XOR} $ 、 $ A \oplus B $ は、以下のように定義されます。
- $ A \oplus B $ を二進表記した際の $ 2^k $ ( $ k \geq 0 $ ) の位の数は、 $ A, B $ を二進表記した際の $ 2^k $ の位の数のうち一方のみが $ 1 $ であれば $ 1 $ 、そうでなければ $ 0 $ である。
例えば、 $ 3 \oplus 5 = 6 $ となります (二進表記すると: $ 011 \oplus 101 = 110 $ )。
一般に $ k $ 個の非負整数 $ p_1, p_2, p_3, \dots, p_k $ のビット単位 $ \mathrm{XOR} $ は $ (\dots ((p_1 \oplus p_2) \oplus p_3) \oplus \dots \oplus p_k) $ と定義され、これは $ p_1, p_2, p_3, \dots, p_k $ の順番によらないことが証明できます。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ Q $ $ \text{query}_1 $ $ \text{query}_2 $ $ \vdots $ $ \text{query}_Q $
各クエリは以下の $ 2 $ 種類のいずれかの形式で与えられる。
> $ 1 $ $ x $
> $ 2 $
Output Format
$ Q $ 行出力せよ。
$ i $ 行目 $ (1\le i\le Q) $ には、 $ i $ 番目のクエリを処理した直後の $ A $ に対する $ A_1,A_2,\ldots,A_N $ のビット単位 $ \mathrm{XOR} $ を出力せよ。
Explanation/Hint
### Sample Explanation 1
$ 1 $ 番目のクエリを処理した後 $ A=(0,1) $ となります。 $ 0,1 $ のビット単位 $ \mathrm{XOR} $ は $ 1 $ なので、 $ 1 $ 行目には $ 1 $ を出力してください。
$ 2 $ 番目のクエリを処理した後 $ A=(0,2) $ となります。 $ 0,2 $ のビット単位 $ \mathrm{XOR} $ は $ 2 $ なので、 $ 2 $ 行目には $ 2 $ を出力してください。
$ 3 $ 番目のクエリを処理した後 $ A=(1,2) $ となります。 $ 1,2 $ のビット単位 $ \mathrm{XOR} $ は $ 3 $ なので、 $ 3 $ 行目には $ 3 $ を出力してください。
$ 4 $ 番目のクエリを処理した後 $ A=(0,1) $ となります。 $ 0,1 $ のビット単位 $ \mathrm{XOR} $ は $ 1 $ なので、 $ 4 $ 行目には $ 1 $ を出力してください。
$ 5 $ 番目のクエリを処理した後 $ A=(0,0) $ となります。 $ 0,0 $ のビット単位 $ \mathrm{XOR} $ は $ 0 $ なので、 $ 5 $ 行目には $ 0 $ を出力してください。
### Constraints
- $ 1\le N\le 5\times 10^5 $
- $ 1\le Q\le 5\times 10^5 $
- $ 1\le x\le N $
- 入力される値は全て整数