#include using namespace std; using ll = long long; using ld = long double; using pii = pair; using pll = pair; using vi = vector; using vl = vector; #define pb push_back #define eb emplace_back #define fi first #define se second #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() #define rep(i, a, b) for (int i = (a); i < (b); i++) mt19937 rng(random_device{}()); int main() { ios::sync_with_stdio(false); cin.tie(0); int q; cin >> q; unordered_set S; int result = -1; bool ver = false; rep(i, 0, q){ int num; int query; cin >> query; if(query != 3) cin >> num; if(query == 1){ if(S.empty()) result = num; S.insert(num); result &= num; } else if(query == 2){ S.erase(num); if(S.empty()) result = -1; else ver = true; } else{ if(S.empty()) result = -1; else if(ver){ //se removeu um antes do ultimo calculo, re-calcula auto it = S.begin(); result = *it; while(it != S.end()){ result &= *it; it++; } ver = false; } cout << result << "\n"; } } return 0; }