/* -*- coding: utf-8 -*- * * 2195.cc: No.2195 AND Set - yukicoder */ #include #include #include using namespace std; /* constant */ const int BN = 30; /* typedef */ /* global variables */ int cs[BN][2]; /* subroutines */ /* main */ int main() { int qn; scanf("%d", &qn); unordered_set xs; while (qn--) { int op; scanf("%d", &op); if (op == 1) { int x; scanf("%d", &x); if (! xs.count(x)) { xs.insert(x); for (int i = 0; i < BN; i++) cs[i][(x >> i) & 1]++; } } else if (op == 2) { int x; scanf("%d", &x); if (xs.count(x)) { xs.erase(x); for (int i = 0; i < BN; i++) cs[i][(x >> i) & 1]--; } } else { if (xs.empty()) puts("-1"); else { int s = 0; for (int i = 0, bi = 1; i < BN; i++, bi <<= 1) if (cs[i][0] == 0 && cs[i][1] > 0) s |= bi; printf("%d\n", s); } } } return 0; }