Type: Default 3000ms 256MiB

博宝自动机Ⅱ

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

Problem Description

众所周知,博宝还是一只大鹅。

在2023年四川省程序设计大赛的前一天,博宝被困在了娃娃机里。恰好被彬哥和鑫宝遇到了,于是彬哥和鑫宝打算解救博宝。

博宝现在躺在了娃娃机里面,成功抓取博宝即可拯救博宝!

重庆邮电大学ACM集训队的同学们不断的抓呀抓,还是没有将博宝抓出来。

娃娃机真的太坑了,想直接抓出来简直难如登天!

聪明的彬哥发现,躺在娃娃机里面的博宝们呈现一种互相压住的状态,即博宝们之间存在相互牵制。

例如博宝a压住博宝b会导致b不好抓取。

我们可以找到最好抓的那一只博宝进行抓取,这样拯救博宝的成功率会大大提升。

于是!ACM集训队灵魂人物——彬哥和鑫宝发明了博宝自动机,可以快速计算出最好抓的那一只博宝的成功率是多少。

每一只博宝身上有一个值,任意两只博宝身上的值的异或值越小,那么说明被牵制的越少,此时抓取的成功率越高!

彬哥和鑫宝的此举显然危害到了娃娃机管理员的利益,于是管理员决定随机地拿走一只博宝或者加入一只博宝。

以此来干扰博宝自动机的计算。

可是现在站在你面前的是…………(省略1000字)…………的彬哥和鑫宝,怎么会让你区区小人得逞呢!

彬哥和鑫宝找到了聪明的你,希望你可以帮助他们计算任意两只博宝身上的 异或值 最小是多少。

即目前有三种操作

操作1: 加入一只值为x的博宝
操作2: 删除一只值为x的博宝(如果有多只,只删除一只)
操作3: 查询任意两只博宝身上的  异或值  的最小值

异或值指的是两个数按位异或的值,具体计算方案见提示

Input Format

第一行输入一个正整数n代表有n次操作

接下来n行,每行先输入一个正整数op,代表操作的种类。

如果 op∈{1,2} op \in \{ 1,2 \} , 那么还会继续输入一个数x,

代表需要 加入/删除 的博宝的值。

Output Format

对于每次操作3,输出一个正整数,代表任意两只博宝身上的 异或值 的最小值

如果操作3的时候,机器中的博宝数量小于2,那么输出-1。

如果操作2删除的博宝并不存在,那么不做任何操作。

Sample

样例输入

6
1 2
1 2
1 3
3
2 2
3

样例输出

0
1

Hint

1≤n≤1061 \leq n \leq 10^6

op∈{1,2,3} op\in \{ 1,2,3 \}

0≤x\textless230 0 \leq x \textless 2^{30}

按位异或运算将两个运算分量的对应位按位遵照以下规则进行计算:
0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, 1 ^ 1 = 0
即相应位的值相同的,结果为 0,不相同的结果为 1。
例如,2 ^ 6结果为4
因为2表示为二进制为0010,6表示为二进制为0110
两数只有第三位相异,因此最后的结果为0100,即为4