#include<bits/stdc++.h>
#define TIME (1.0*clock()/CLOCKS_PER_SEC)
#define pb push_back
#define eb emplace_back
#define id1 (id<<1)
#define id2 (id<<1)|1
#define ll long long
#define ii pair<int,int>
#define vi vector<int>
#define vii vector<pair<int,int>>
#define vl vector<long long>
#define vll vector<pair<ll,ll>>
#define li pair<long long,int>
#define vil vector<pair<int,ll>>
#define db double
#define ff first
#define ss second
#define lb lower_bound
#define ub upper_bound
#define FOR(i,a,b) for(int i=(a);i<=(b);i++)
#define F0R(i,a) FOR(i,0,a-1)
#define ROF(i,a,b) for(int i=(b);i>=(a);i--)
#define R0F(i,a) ROF(i,0,a-1)
#define rep(a) F0R(_,a)
#define each(a,x) for(auto&a:x)
#define ALL(x) (x).begin(),(x).end()
#define pq priority_queue<li,vector<li>,greater<li>>
using namespace std;
const int maxn=1e5+5;
int q,totalxor=0;
vector<array<int,2>> T;
int cnt[40*maxn];
int cnt0[40*maxn][22];
int cnt1[40*maxn][22];
int isEnd[40*maxn];
ll pre[40*maxn];
void add(int x){
int val=x;
int root=0;
for(int i=21;i>=0;i--){
int bit=(val>>i)&1;
if(T[root][bit]==0){
T.emplace_back();
T[root][bit]=T.size()-1;
}
for(int j=21;j>=0;j--){
int xbit=(val>>j)&1;
if(xbit==0)cnt0[root][j]++;
else cnt1[root][j]++;
}
root=T[root][bit];
cnt[root]++;
pre[root]+=x;
}
isEnd[root]=x;
}
void del(int x){
int val=x;
int root=0;
bool exists=true;
for(int i=21;i>=0;i--){
int bit=(val>>i)&1;
if(T[root][bit]==0||cnt[T[root][bit]]==0){
exists=false;
break;
}
root=T[root][bit];
}
if(!exists)return;
root=0;
for(int i=21;i>=0;i--){
int bit=(val>>i)&1;
for(int j=21;j>=0;j--){
int xbit=(val>>j)&1;
if(xbit==0)cnt0[root][j]--;
else cnt1[root][j]--;
}
int preroot=root;
root=T[root][bit];
cnt[root]--;
pre[root]-=x;
if(cnt[root]==0){
T[preroot][bit]=0;
}
}
if(cnt[root]==0){
isEnd[root]=0;
}
}
ll search(int k,int root,int i){
ll res=0;
if(k<=0)return 0;
if(k==cnt[root]){
for(int j=21;j>=0;j--){
if((totalxor>>j)&1){
res+=cnt0[root][j]*(1LL<<j);
}
else{
res+=cnt1[root][j]*(1LL<<j);
}
}
return res;
}
if (i == 0) {
if (k > 0 && cnt[root] > 0) {
return (isEnd[root] ^ totalxor) * k;
}
return 0;
}
if(i<0)return 0;
if((totalxor>>i)&1){
if(T[root][0]&&k<=cnt[T[root][0]]){
return search(k,T[root][0],i-1);
}
else{
ll sum=0;
if(T[root][0]){
sum=search(cnt[T[root][0]],T[root][0],i-1);
}
if(T[root][1]){
sum+=search(k-(T[root][0]?cnt[T[root][0]]:0),T[root][1],i-1);
}
return sum;
}
}
else{
if(T[root][1]&&k<=cnt[T[root][1]]){
return search(k,T[root][1],i-1);
}
else{
ll sum=0;
if(T[root][1]){
sum=search(cnt[T[root][1]],T[root][1],i-1);
}
if(T[root][0]){
sum+=search(k-(T[root][1]?cnt[T[root][1]]:0),T[root][0],i-1);
}
return sum;
}
}
}
void solve(){
T.emplace_back();
cin>>q;
while(q--){
int type;
cin>>type;
if(type==0){
int x;
cin>>x;
x^=totalxor;
add(x);
}
else if(type==1){
int x;
cin>>x;
x^=totalxor;
del(x);
}
else if(type==2){
int x;
cin>>x;
totalxor^=x;
}
else if(type==3){
int k;
cin>>k;
cout<<search(k,0,22)<<"\n";
}
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);cout.tie(NULL);
//if(fopen("TASK.INP","r")){
// freopen("TASK.INP","r",stdin);
// freopen("TASK.OUT","w",stdout);
//}
int ntest=1;
//cin>>ntest;
for(int i=1;i<=ntest;i++)solve();
cerr<<"\n"<<"Time elapsed "<<TIME<<"s.\n";
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBUSU1FICgxLjAqY2xvY2soKS9DTE9DS1NfUEVSX1NFQykKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBlYiBlbXBsYWNlX2JhY2sKI2RlZmluZSBpZDEgKGlkPDwxKQojZGVmaW5lIGlkMiAoaWQ8PDEpfDEKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBpaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgdmkgdmVjdG9yPGludD4KI2RlZmluZSB2aWkgdmVjdG9yPHBhaXI8aW50LGludD4+CiNkZWZpbmUgdmwgdmVjdG9yPGxvbmcgbG9uZz4KI2RlZmluZSB2bGwgdmVjdG9yPHBhaXI8bGwsbGw+PgojZGVmaW5lIGxpIHBhaXI8bG9uZyBsb25nLGludD4KI2RlZmluZSB2aWwgdmVjdG9yPHBhaXI8aW50LGxsPj4KI2RlZmluZSBkYiBkb3VibGUKI2RlZmluZSBmZiBmaXJzdAojZGVmaW5lIHNzIHNlY29uZAojZGVmaW5lIGxiIGxvd2VyX2JvdW5kCiNkZWZpbmUgdWIgdXBwZXJfYm91bmQKI2RlZmluZSBGT1IoaSxhLGIpIGZvcihpbnQgaT0oYSk7aTw9KGIpO2krKykKI2RlZmluZSBGMFIoaSxhKSBGT1IoaSwwLGEtMSkKI2RlZmluZSBST0YoaSxhLGIpIGZvcihpbnQgaT0oYik7aT49KGEpO2ktLSkKI2RlZmluZSBSMEYoaSxhKSBST0YoaSwwLGEtMSkKI2RlZmluZSByZXAoYSkgRjBSKF8sYSkKI2RlZmluZSBlYWNoKGEseCkgZm9yKGF1dG8mYTp4KQojZGVmaW5lIEFMTCh4KSAoeCkuYmVnaW4oKSwoeCkuZW5kKCkKI2RlZmluZSBwcSBwcmlvcml0eV9xdWV1ZTxsaSx2ZWN0b3I8bGk+LGdyZWF0ZXI8bGk+Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgbWF4bj0xZTUrNTsKCgppbnQgcSx0b3RhbHhvcj0wOwp2ZWN0b3I8YXJyYXk8aW50LDI+PiBUOwppbnQgY250WzQwKm1heG5dOwppbnQgY250MFs0MCptYXhuXVsyMl07CmludCBjbnQxWzQwKm1heG5dWzIyXTsKaW50IGlzRW5kWzQwKm1heG5dOwpsbCBwcmVbNDAqbWF4bl07Cgp2b2lkIGFkZChpbnQgeCl7CiAgICBpbnQgdmFsPXg7CiAgICBpbnQgcm9vdD0wOwogICAgZm9yKGludCBpPTIxO2k+PTA7aS0tKXsKICAgICAgICBpbnQgYml0PSh2YWw+PmkpJjE7CiAgICAgICAgaWYoVFtyb290XVtiaXRdPT0wKXsKICAgICAgICAgICAgVC5lbXBsYWNlX2JhY2soKTsKICAgICAgICAgICAgVFtyb290XVtiaXRdPVQuc2l6ZSgpLTE7CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaj0yMTtqPj0wO2otLSl7CiAgICAgICAgICAgIGludCB4Yml0PSh2YWw+PmopJjE7CiAgICAgICAgICAgIGlmKHhiaXQ9PTApY250MFtyb290XVtqXSsrOwogICAgICAgICAgICBlbHNlIGNudDFbcm9vdF1bal0rKzsKICAgICAgICB9CiAgICAgICAgcm9vdD1UW3Jvb3RdW2JpdF07CiAgICAgICAgY250W3Jvb3RdKys7CiAgICAgICAgcHJlW3Jvb3RdKz14OwogICAgfQogICAgaXNFbmRbcm9vdF09eDsKfQoKdm9pZCBkZWwoaW50IHgpewogICAgaW50IHZhbD14OwogICAgaW50IHJvb3Q9MDsKICAgIGJvb2wgZXhpc3RzPXRydWU7CiAgICBmb3IoaW50IGk9MjE7aT49MDtpLS0pewogICAgICAgIGludCBiaXQ9KHZhbD4+aSkmMTsKICAgICAgICBpZihUW3Jvb3RdW2JpdF09PTB8fGNudFtUW3Jvb3RdW2JpdF1dPT0wKXsKICAgICAgICAgICAgZXhpc3RzPWZhbHNlOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgcm9vdD1UW3Jvb3RdW2JpdF07CiAgICB9CiAgICBpZighZXhpc3RzKXJldHVybjsKCiAgICByb290PTA7CiAgICBmb3IoaW50IGk9MjE7aT49MDtpLS0pewogICAgICAgIGludCBiaXQ9KHZhbD4+aSkmMTsKICAgICAgICBmb3IoaW50IGo9MjE7aj49MDtqLS0pewogICAgICAgICAgICBpbnQgeGJpdD0odmFsPj5qKSYxOwogICAgICAgICAgICBpZih4Yml0PT0wKWNudDBbcm9vdF1bal0tLTsKICAgICAgICAgICAgZWxzZSBjbnQxW3Jvb3RdW2pdLS07CiAgICAgICAgfQogICAgICAgIGludCBwcmVyb290PXJvb3Q7CiAgICAgICAgcm9vdD1UW3Jvb3RdW2JpdF07CiAgICAgICAgY250W3Jvb3RdLS07CiAgICAgICAgcHJlW3Jvb3RdLT14OwogICAgICAgIGlmKGNudFtyb290XT09MCl7CiAgICAgICAgICAgIFRbcHJlcm9vdF1bYml0XT0wOwogICAgICAgIH0KICAgIH0KICAgIGlmKGNudFtyb290XT09MCl7CiAgICAgICAgaXNFbmRbcm9vdF09MDsKICAgIH0KfQoKbGwgc2VhcmNoKGludCBrLGludCByb290LGludCBpKXsKICAgIGxsIHJlcz0wOwogICAgaWYoazw9MClyZXR1cm4gMDsKICAgIGlmKGs9PWNudFtyb290XSl7CiAgICAgICAgZm9yKGludCBqPTIxO2o+PTA7ai0tKXsKICAgICAgICAgICAgaWYoKHRvdGFseG9yPj5qKSYxKXsKICAgICAgICAgICAgICAgIHJlcys9Y250MFtyb290XVtqXSooMUxMPDxqKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgcmVzKz1jbnQxW3Jvb3RdW2pdKigxTEw8PGopOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXM7CiAgICB9CiAgIGlmIChpID09IDApIHsKICAgICAgIAogICAgICAgIGlmIChrID4gMCAmJiBjbnRbcm9vdF0gPiAwKSB7CiAgICAgICAgICAgIAogICAgICAgICAgICByZXR1cm4gKGlzRW5kW3Jvb3RdIF4gdG90YWx4b3IpICogazsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICBpZihpPDApcmV0dXJuIDA7CiAgICAKICAgIGlmKCh0b3RhbHhvcj4+aSkmMSl7CiAgICAgICAgaWYoVFtyb290XVswXSYmazw9Y250W1Rbcm9vdF1bMF1dKXsKICAgICAgICAgICAgcmV0dXJuIHNlYXJjaChrLFRbcm9vdF1bMF0saS0xKTsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgbGwgc3VtPTA7CiAgICAgICAgICAgIGlmKFRbcm9vdF1bMF0pewogICAgICAgICAgICAgICAgc3VtPXNlYXJjaChjbnRbVFtyb290XVswXV0sVFtyb290XVswXSxpLTEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKFRbcm9vdF1bMV0pewogICAgICAgICAgICAgICAgc3VtKz1zZWFyY2goay0oVFtyb290XVswXT9jbnRbVFtyb290XVswXV06MCksVFtyb290XVsxXSxpLTEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgfQogICAgfQogICAgZWxzZXsKICAgICAgICBpZihUW3Jvb3RdWzFdJiZrPD1jbnRbVFtyb290XVsxXV0pewogICAgICAgICAgICByZXR1cm4gc2VhcmNoKGssVFtyb290XVsxXSxpLTEpOwogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICBsbCBzdW09MDsKICAgICAgICAgICAgaWYoVFtyb290XVsxXSl7CiAgICAgICAgICAgICAgICBzdW09c2VhcmNoKGNudFtUW3Jvb3RdWzFdXSxUW3Jvb3RdWzFdLGktMSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoVFtyb290XVswXSl7CiAgICAgICAgICAgICAgICBzdW0rPXNlYXJjaChrLShUW3Jvb3RdWzFdP2NudFtUW3Jvb3RdWzFdXTowKSxUW3Jvb3RdWzBdLGktMSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICB9CiAgICB9Cn0KCnZvaWQgc29sdmUoKXsKICAgIFQuZW1wbGFjZV9iYWNrKCk7CiAgICBjaW4+PnE7CiAgICB3aGlsZShxLS0pewogICAgICAgIGludCB0eXBlOwogICAgICAgIGNpbj4+dHlwZTsKICAgICAgICBpZih0eXBlPT0wKXsKICAgICAgICAgICAgaW50IHg7CiAgICAgICAgICAgIGNpbj4+eDsKICAgICAgICAgICAgeF49dG90YWx4b3I7CiAgICAgICAgICAgIGFkZCh4KTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZih0eXBlPT0xKXsKICAgICAgICAgICAgaW50IHg7CiAgICAgICAgICAgIGNpbj4+eDsKICAgICAgICAgICAgeF49dG90YWx4b3I7CiAgICAgICAgICAgIGRlbCh4KTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZih0eXBlPT0yKXsKICAgICAgICAgICAgaW50IHg7CiAgICAgICAgICAgIGNpbj4+eDsKICAgICAgICAgICAgdG90YWx4b3JePXg7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYodHlwZT09Myl7CiAgICAgICAgICAgIGludCBrOwogICAgICAgICAgICBjaW4+Pms7CiAgICAgICAgICAgIGNvdXQ8PHNlYXJjaChrLDAsMjIpPDwiXG4iOwogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTtjb3V0LnRpZShOVUxMKTsKICAgIC8vaWYoZm9wZW4oIlRBU0suSU5QIiwiciIpKXsKICAgIC8vICAgIGZyZW9wZW4oIlRBU0suSU5QIiwiciIsc3RkaW4pOwogICAgLy8gICAgZnJlb3BlbigiVEFTSy5PVVQiLCJ3IixzdGRvdXQpOwogICAgLy99CiAgICBpbnQgbnRlc3Q9MTsKICAgIC8vY2luPj5udGVzdDsKCiAgICBmb3IoaW50IGk9MTtpPD1udGVzdDtpKyspc29sdmUoKTsKICAgIGNlcnI8PCJcbiI8PCJUaW1lIGVsYXBzZWQgIjw8VElNRTw8InMuXG4iOwogICAgcmV0dXJuIDA7Cn0=