#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ii pair<int,int>
#define iii pair<int,ii>
#define fi first
#define se second
#define inf 10000000000000000
const int N = 1e5 + 5;
int q, node = 1, nxt[20*N][2], f[20*N], xorall;
int bit1[20*N][20], bit0[20*N][20];
void add(int num) {
int u = 1;
for(int i = 19; i >= 0; i--) {
int c = 0;
if(num&(1<<i)) c = 1;
if(!nxt[u][c]) nxt[u][c] = ++node;
u = nxt[u][c];
for(int j = i; j >= 0; j--) {
if(num&(1<<j)) bit1[u][j]++;
else bit0[u][j]++;
}
f[u]++;
}
}
int check(int num) {
int u = 1;
for(int i = 19; i >= 0; i--) {
int c = 0;
if(num&(1<<i)) c = 1;
if(!nxt[u][c]) return 0;
u = nxt[u][c];
if(f[u] == 0) return 0;
}
return 1;
}
void remov(int num) {
int u = 1;
for(int i = 19; i >= 0; i--) {
int c = 0;
if(num&(1<<i)) c = 1;
u = nxt[u][c];
f[u]--;
for(int j = i; j >= 0; j--) {
if(num&(1<<j)) bit1[u][j]--;
else bit0[u][j]--;
}
}
}
int get(int k, int num) {
int u = 1;
int res = 0;
for(int i = 19; i >= 0; i--) {
int c = 0;
if(num&(1<<i)) c = 1;
int pos = nxt[u][c];
//cout <<
if(pos && k <= f[pos]) {
u = pos;
}
else {
k -= f[pos];
for(int j = i; j >= 0; j--) {
if(num&(1<<j)) res = res + bit0[pos][j]*(1<<j);
else res = res + bit1[pos][j]*(1<<j);
}
u = nxt[u][c^1];
res += k*(1<<i);
}
}
return res;
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
if (fopen("main.inp", "r")) {
freopen("main.inp", "r", stdin);
freopen("main.out", "w", stdout);
}
cin >> q;
while(q--) {
int tt, k;
cin >> tt >> k;
if(tt == 0) add(k^xorall);
if(tt == 1) if(check(k^xorall)) remov(k^xorall);
if(tt == 2) xorall ^= k;
if(tt == 3) {
int ans = get(k,xorall);
cout << ans << '\n';
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBpaWkgcGFpcjxpbnQsaWk+CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBpbmYgMTAwMDAwMDAwMDAwMDAwMDAKY29uc3QgaW50IE4gPSAxZTUgKyA1OwppbnQgcSwgbm9kZSA9IDEsIG54dFsyMCpOXVsyXSwgZlsyMCpOXSwgeG9yYWxsOwppbnQgYml0MVsyMCpOXVsyMF0sIGJpdDBbMjAqTl1bMjBdOwp2b2lkIGFkZChpbnQgbnVtKSB7CiAgICBpbnQgdSA9IDE7CiAgICBmb3IoaW50IGkgPSAxOTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICBpbnQgYyA9IDA7CiAgICAgICAgaWYobnVtJigxPDxpKSkgYyA9IDE7CiAgICAgICAgaWYoIW54dFt1XVtjXSkgbnh0W3VdW2NdID0gKytub2RlOwogICAgICAgIHUgPSBueHRbdV1bY107CiAgICAgICAgZm9yKGludCBqID0gaTsgaiA+PSAwOyBqLS0pIHsKICAgICAgICAgICAgaWYobnVtJigxPDxqKSkgYml0MVt1XVtqXSsrOwogICAgICAgICAgICBlbHNlIGJpdDBbdV1bal0rKzsKICAgICAgICB9CiAgICAgICAgZlt1XSsrOwogICAgfQp9CmludCBjaGVjayhpbnQgbnVtKSB7CiAgICBpbnQgdSA9IDE7CiAgICBmb3IoaW50IGkgPSAxOTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICBpbnQgYyA9IDA7CiAgICAgICAgaWYobnVtJigxPDxpKSkgYyA9IDE7CiAgICAgICAgaWYoIW54dFt1XVtjXSkgcmV0dXJuIDA7CiAgICAgICAgdSA9IG54dFt1XVtjXTsKICAgICAgICBpZihmW3VdID09IDApIHJldHVybiAwOwogICAgfQogICAgcmV0dXJuIDE7Cn0Kdm9pZCByZW1vdihpbnQgbnVtKSB7CiAgICBpbnQgdSA9IDE7CiAgICBmb3IoaW50IGkgPSAxOTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICBpbnQgYyA9IDA7CiAgICAgICAgaWYobnVtJigxPDxpKSkgYyA9IDE7CiAgICAgICAgdSA9IG54dFt1XVtjXTsKICAgICAgICBmW3VdLS07CiAgICAgICAgZm9yKGludCBqID0gaTsgaiA+PSAwOyBqLS0pIHsKICAgICAgICAgICAgaWYobnVtJigxPDxqKSkgYml0MVt1XVtqXS0tOwogICAgICAgICAgICBlbHNlIGJpdDBbdV1bal0tLTsKICAgICAgICB9CiAgICB9Cn0KaW50IGdldChpbnQgaywgaW50IG51bSkgewogICAgaW50IHUgPSAxOwogICAgaW50IHJlcyA9IDA7CiAgICBmb3IoaW50IGkgPSAxOTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICBpbnQgYyA9IDA7CiAgICAgICAgaWYobnVtJigxPDxpKSkgYyA9IDE7CiAgICAgICAgaW50IHBvcyA9IG54dFt1XVtjXTsKICAgICAgICAvL2NvdXQgPDwKICAgICAgICBpZihwb3MgJiYgayA8PSBmW3Bvc10pIHsKICAgICAgICAgICAgdSA9IHBvczsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGsgLT0gZltwb3NdOwogICAgICAgICAgICBmb3IoaW50IGogPSBpOyBqID49IDA7IGotLSkgewogICAgICAgICAgICAgICAgaWYobnVtJigxPDxqKSkgcmVzID0gcmVzICsgYml0MFtwb3NdW2pdKigxPDxqKTsKICAgICAgICAgICAgICAgIGVsc2UgcmVzID0gcmVzICsgYml0MVtwb3NdW2pdKigxPDxqKTsKICAgICAgICAgICAgfQogICAgICAgICAgICB1ID0gbnh0W3VdW2NeMV07CiAgICAgICAgICAgIHJlcyArPSBrKigxPDxpKTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gcmVzOwp9CnNpZ25lZCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgY291dC50aWUoMCk7CiAgICBpZiAoZm9wZW4oIm1haW4uaW5wIiwgInIiKSkgewogICAgICAgIGZyZW9wZW4oIm1haW4uaW5wIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3BlbigibWFpbi5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICB9CiAgICBjaW4gPj4gcTsKICAgIHdoaWxlKHEtLSkgewogICAgICAgIGludCB0dCwgazsKICAgICAgICBjaW4gPj4gdHQgPj4gazsKICAgICAgICBpZih0dCA9PSAwKSBhZGQoa154b3JhbGwpOwogICAgICAgIGlmKHR0ID09IDEpIGlmKGNoZWNrKGteeG9yYWxsKSkgcmVtb3Yoa154b3JhbGwpOwogICAgICAgIGlmKHR0ID09IDIpIHhvcmFsbCBePSBrOwogICAgICAgIGlmKHR0ID09IDMpIHsKICAgICAgICAgICAgaW50IGFucyA9IGdldChrLHhvcmFsbCk7CiAgICAgICAgICAgIGNvdXQgPDwgYW5zIDw8ICdcbic7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDA7Cn0=