/* 💕💕💕💕💕 💗💗💗💗💗 /)/) ( . .) ( づ💗 💗💗💗 💗💗💗 💗💗💗💗💗💗💗💗💗 💗💗💗💗💗💗💗💗💗 💗💗💗💗💗💗💗 💗💗💗💗💗 💗💗💗 💗 */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include std::vector get_divisors(int x, bool sorted = true) { std::vector res; for (int i = 1; i <= x / i; i++) if (x % i == 0) { res.push_back(i); if (i != x / i) res.push_back(x / i); } if (sorted) std::sort(res.begin(), res.end()); return res; } void solve() { int q; std::set s; int ans = (1 << 30) - 1; std::cin >> q; std::vector cnt(30); while (q--) { int op, x; std::cin >> op; if (op == 3) { if (s.empty()) std::cout << -1 << '\n'; else { int ans = 0; for (int i = 0; i < 30; i++) { if (cnt[i] == (int)s.size()) { ans |= 1 << i; } } std::cout << ans << '\n'; } } else { std::cin >> x; if (op == 2) { if (s.find(x) == s.end()) continue; s.erase(x); for (int i = 0; i < 30; i++) { if (x >> i & 1) { cnt[i] -= 1; } } } else { if (s.find(x) != s.end()) continue; s.insert(x); for (int i = 0; i < 30; i++) { if (x >> i & 1) { cnt[i] += 1; } } } } } } int main() { std::cin.tie(nullptr); int t = 1; // std::cout << std::boolalpha; // std::cin >> t; while (t--) solve(); return 0; }