AT_abc308_g [ABC308G] Minimum Xor Pair Query

Description

[problemUrl]: https://atcoder.jp/contests/abc308/tasks/abc308_g 整数を書くことができる黒板があります。はじめ黒板には整数は何も書かれていません。クエリが $ Q $ 個与えられるので順に処理してください。 クエリは以下の $ 3 $ 種類です。 - `1 x` : 黒板に $ x $ を一つ書き込む。 - `2 x` : 黒板に書かれた $ x $ を一つ消去する。このクエリが与えられるとき、黒板に $ x $ が一つ以上書かれていることが保証される。 - `3` : 黒板に書かれた二つの整数のビット単位 XOR としてあり得る最小値を出力する。このクエリを処理する際、黒板に整数が二つ以上書かれていることが保証される。 ビット単位 XOR とは 非負整数 $ A,\ B $ のビット単位 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 $)。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ Q $ $ \mathrm{query}_1 $ $ \mathrm{query}_2 $ $ \vdots $ $ \mathrm{query}_Q $ $ i $ 番目のクエリ $ \mathrm{query}_i $ では、まずクエリの種類 $ c_i $( $ 1,\ 2,\ 3 $ のいずれか)が与えられる。 $ c_i\ =\ 1,\ c_i\ =\ 2 $ の場合はさらに整数 $ x $ が追加で与えられる。 すなわち、各クエリは以下に示す $ 3 $ つの形式のいずれかである。 > $ 1 $ $ x $ > $ 2 $ $ x $ > $ 3 $

Output Format

$ c_i=3 $ を満たすクエリの回数を $ q $ として $ q $ 行出力せよ。 $ j\ (1\leq\ j\leq\ q) $ 行目では $ j $ 番目のそのようなクエリに対する答えを出力せよ。

Explanation/Hint

### 制約 - $ 1\leq\ Q\ \leq\ 3\times\ 10^5 $ - $ 0\leq\ x\