using static System.Math; using System.Collections.Generic; using System.Linq; using System; public class Hello { static void Main() { var q = int.Parse(Console.ReadLine().Trim()); getAns(q); } static void getAns(int q) { var b = new int[30]; var hs = new HashSet(); for (int i = 0; i < q; i++) { string[] line = Console.ReadLine().Trim().Split(' '); if (line[0] == "1") { var x = int.Parse(line[1]); if (hs.Add(x)) { for (int j = 0; j < 30; j++) { if (((x >> j) & 1) == 1) b[j]++; } } } else if (line[0] == "2") { var x = int.Parse(line[1]); if (hs.Remove(x)) { for (int j = 0; j < 30; j++) { if (((x >> j) & 1) == 1) b[j]--; } } } else { var hsc = hs.Count; if (hsc == 0) { Console.WriteLine(-1); continue; } var ans = 0; for (int j = 0; j < 30; j++) { if (b[j] == hsc) ans |= 1 << j; } Console.WriteLine(ans); } } } }