#pragma GCC target("avx") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include using namespace std; int main() { cin.tie(0); ios::sync_with_stdio(false); int Q; cin >> Q; set S; vector> cnt(30, vector(2)); for( int q = 0; q < Q; q++ ) { int t, x; cin >> t; if( t == 1 ) { cin >> x; if( !S.count(x) ) { S.insert(x); for( int i = 0; i < 30; i++ ) { cnt[i][(x>>i)&1]++; } } }else if( t == 2 ) { cin >> x; if( S.count(x) ) { S.erase(x); for( int i = 0; i < 30; i++ ) { cnt[i][(x>>i)&1]--; } } }else { if( S.empty() ) { cout << -1 << endl; }else { int ans = 0; for( int i = 0; i < 30; i++ ) { if( cnt[i][0] == 0 && cnt[i][1] > 0 ) { ans |= 1<