Problem 
                         
                                 您有 q 个查询和一个最初仅包含数字 0 的多重集 A。查询分为三种类型:
- +x ——将数字 x 添加到多重集 A。
 
- -x ——从 multiset A 中删除一个数字 x。保证此时 multiset 中至少存在一个数字 x。
 
<李><强>? x —给定一个数字 x,你需要计算数字 x 和多重集 A 中的某个数字 y 的最大按位异或(也称为 XOR)。
多重集——这是一个允许多个相同元素的集合。
输入:
输入的第一行包含数字 q (1 ≤ q ≤ 200000) — Vasiliy 需要处理的请求数。
输入的以下 q 行中的每一行都包含三个字符“+”、“-”中的一个或者 ”?”和数字 x
i (1 ≤ x
i ≤ 10
9)。保证输入中至少有一个查询“?”
请注意,数字 0 将始终出现在多重集中。
输出:
对于像“?”这样的每个请求打印一个整数——数字 x
i 和多重集 A 中的任何数字的按位异或的最大值。
示例:
 
<正文>
| 输入 | 
输出 | 
10 
+8 
+9 
+11 
+ 6 
+ 1 
? 3 
- 8 
? 3 
? 8  
? 11 | 
11 
10 
14 
13 | 
表>