#include using namespace std; using ll = long long; using ld = long double; using pii = pair; using pll = pair; using vi = 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() { cin.tie(0)->sync_with_stdio(0); int Q; cin >> Q; set s; vector cnt(30); while(Q--){ int q; cin >> q; if(q == 1){ int x; cin >> x; if(!s.count(x)){ s.insert(x); rep(i,0,30) if(x >> i & 1) cnt[i]++; } } else if(q == 2){ int x; cin >> x; if(s.count(x)){ s.erase(x); rep(i,0,30) if(x >> i & 1) cnt[i]--; } } else{ if(s.empty()){ cout << -1 << endl; continue; } int ans = 0; rep(i,0,30) if(cnt[i] == sz(s)) ans |= 1 << i; cout << ans << endl; } } return 0; }