Problem

9 /10


Multiset y XOR

Problem

Tiene q consultas y un conjunto múltiple A que inicialmente contiene solo el número 0. Hay tres tipos de consultas:
  • +x : agregue el número x al conjunto múltiple A.
  • -x : elimine una aparición del número x del conjunto múltiple A. Se garantiza que al menos un número x está presente en el conjunto múltiple en este momento.
  • ? x & mdash; se le da un número x, debe calcular el OR exclusivo bit a bit máximo (también conocido como XOR) del número x y algún número y del conjunto múltiple A.
Conjunto múltiple: este es un conjunto que permite múltiples elementos idénticos.

Entrada:
La primera línea de la entrada contiene el número q (1 ≤ q ≤ 200000) — la cantidad de solicitudes que Vasiliy necesita procesar.

Cada una de las siguientes líneas q de la entrada contiene uno de los tres caracteres "+", "-" o "?" y el número xi (1 ≤ xi ≤ 109). Se garantiza que hay al menos una consulta "?" en la entrada.

Tenga en cuenta que el número 0 siempre estará presente en el conjunto múltiple.

Salida:
Para cada solicitud como "?" imprime un solo entero — el valor máximo del XOR bit a bit para el número xi y cualquier número del conjunto múltiple A.

Ejemplo:
 
Entrada Salida
10
+8
+9
+11
+ 6
+ 1
? 3
- 8
? 3
? 8
? 11
11
10
14
13