#include <bits/stdc++.h>
using namespace std;
int tot;
int a[2600005][2];
int s = 1e7;
int siz[2600005];
inline void insert(int val) {
int now = 0;
for (int i = 24; i >= 0; i--) {
bool t = (1 << i)&val;
if (!a[now][t])
a[now][t] = ++tot;
now = a[now][t];
siz[now]++;
}
}
inline void remove(int val) {
int now = 0;
for (int i = 24; i >= 0; i--) {
bool t = (1 << i)&val;
now = a[now][t];
siz[now]--;
}
}
inline int get_val(int rank) {
int now = 0, ans = 0;
for (int i = 24; i >= 0; i--) {
bool t = siz[a[now][0]] < rank;
if (t)
rank -= siz[a[now][0]];
ans += (1 << i) * t;
now = a[now][t];
}
return ans;
}
inline int get_rank(int val) {
int now = 0, ans = 0;
for (int i = 24; i >= 0; i--) {
bool t = (1 << i)&val;
if (t)
ans += siz[a[now][0]];
if (!a[now][t])
return ans + 1;
now = a[now][t];
}
return ans + 1;
}
int n;
int main() {
int now = 1;
cin >> n;
for (int i = 1; i <= n; i++) {
int opt, x;
scanf("%d%d", &opt, &x);
if (opt == 1)
insert(x + s);
else if (opt == 2)
remove(x + s);
else if (opt == 3)
cout << get_rank(x + s) << endl;
else if (opt == 4)
cout << get_val(x) - s << endl;
else if (opt == 5) {
int hh = get_rank(x + s);
cout << get_val(hh - 1) - s << endl;
} else {
int hh = get_rank(x + s);
int hhh = get_val(hh) - s;
//cout << hhh << endl;
if (hhh > x)
cout << hhh << endl;
else
cout << get_val(hh + 1) - s << endl;
}
}
}