CF706D Vasiliy's Multiset
Description
Author has gone out of the stories about Vasiliy, so here is just a formal task description.
You are given $ q $ queries and a multiset $ A $ , initially containing only integer $ 0 $ . There are three types of queries:
1. "+ x" — add integer $ x $ to multiset $ A $ .
2. "- x" — erase one occurrence of integer $ x $ from multiset $ A $ . It's guaranteed that at least one $ x $ is present in the multiset $ A $ before this query.
3. "? x" — you are given integer $ x $ and need to compute the value , i.e. the maximum value of bitwise exclusive OR (also know as XOR) of integer $ x $ and some integer $ y $ from the multiset $ A $ .
Multiset is a set, where equal elements are allowed.
Input Format
The first line of the input contains a single integer $ q $ ( $ 1
Output Format
For each query of the type '?' print one integer — the maximum value of bitwise exclusive OR (XOR) of integer $ x_{i} $ and some integer from the multiset $ A $ .
Explanation/Hint
After first five operations multiset $ A $ contains integers $ 0 $ , $ 8 $ , $ 9 $ , $ 11 $ , $ 6 $ and $ 1 $ .
The answer for the sixth query is integer  — maximum among integers , , ,  and .