#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; int main() { int Q; cin >> Q; set S; int counter[32]; memset(counter, 0, sizeof(counter)); for (int i = 0; i < Q; ++i) { int type, x; cin >> type; if (type == 1) { cin >> x; if (not S.count(x)) { S.insert(x); for (int i = 0; i < 32; ++i) { if ((x >> i) & 1) { counter[i] += 1; } } } } else if (type == 2) { cin >> x; if (S.count(x)) { S.erase(x); for (int i = 0; i < 32; ++i) { if ((x >> i) & 1) { counter[i] -= 1; } } } } else { if (S.empty()) { cout << -1 << endl; } else { ll val = 0; for (ll i = 0; i < 32; ++i) { if (counter[i] < S.size()) continue; if (counter[i] > 0) { val += pow(2, i); } } cout << val << endl; } } } return 0; }