#1015. 博宝自动机Ⅱ

内存限制:256 MiB 时间限制:3000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: Non_User8

题目描述

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

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

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

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

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

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

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

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

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

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

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

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

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

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

即目前有三种操作

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

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

输入格式

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

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

如果 , 那么还会继续输入一个数x,

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

输出格式

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

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

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

样例

样例输入

6
1 2
1 2
1 3
3
2 2
3

样例输出

0
1

数据范围与提示

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