#include <bits/stdc++.h>

using namespace std;
int N,Q;
int t,k,x;
int pom;
vector<int>cnt(17,0);
vector<vector<bool>>binBrojevi;
void binBrojeviFill(){
    vector<bool>bpom(17,false);
    binBrojevi.resize(N+7);
    fill(binBrojevi.begin(),binBrojevi.end(),bpom);
}
void izvuciCifre(int a,int pos){
    for(int i=16;i>=0;i--){
        if(a>=(1<<i)){
            cnt[i]++;
            binBrojevi[pos][i]=true;
            a-=(1<<i);
        }
    }
}
void izvuciCifrePromena(int a,int pos){
    for(int i=16;i>=0;i--){
        if(a>=(1<<i)){
            if(binBrojevi[pos][i]==0){
                cnt[i]++;
                binBrojevi[pos][i]=true;

            }
            a-=(1<<i);
        }
        else{
            if(binBrojevi[pos][i]==1){
                cnt[i]--;
                binBrojevi[pos][i]=false;
            }
        }
    }
}
void uradi0(){
    int res=0;
    for(int i=0;i<=16;i++){
        if(k<=cnt[i]){
            res+=(1<<i);
        }
    }
    cout<<res<<"\n";
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin>>N;
    binBrojeviFill();
    for(int i=1;i<=N;i++){
        cin>>pom;
        izvuciCifre(pom,i);
    }
    cin>>Q;
    for(int i=0;i<Q;i++){
        cin>>t>>k;
        if(t==0){
            uradi0();
        }
        else{
            cin>>x;
            izvuciCifrePromena(x,k);
        }
    }
    return 0;
}