#include <bits/stdc++.h>
#define int long long
#define push_back pb
#define first f
#define second s

using namespace std;
const int N=1e5+10;
multiset<int> pref[31];

int nadva(int x){
    int rez=1;
    while(x--){
        rez*=2;
    }
    return rez;
}

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int n;
    cin >> n;
    int a[n];
    for(int i=0; i < n; i++)cin >> a[i];

    for(int i=0; i < n; i++){
        for(int j=0; j < 31; j++){
            if(((1<<j)&a[i])){
                    auto x=1;
                    pref[j].insert(x);

            }

        }
    }
    int q;
    cin >> q;
    while(q--){
        int tr;
        cin >> tr;
        if(tr==0){
            int x;
            cin>>x;
            x--;
            int rez=0;
            for(int j=0; j < 31; j++){
                 //cout<<pref[j].size()<<" "<<x<<"\n";
                if(pref[j].size()>x){
                    rez+=nadva(j);
                   // cout<<rez<<" ";
                }
            }

            cout<<rez<<"\n";
        }else{
            int x,y;
            cin >> x >> y;
            x--;
            int zaobrisati = a[x];
             //cout<<pref[1].size();
            for(int i=0; i < 31; i++){
                if(((1<<i)&zaobrisati)){
                    auto x=1;
                    pref[i].erase(pref[i].begin());

                }
            }
             for(int i=0; i < 31; i++){
                if(((1<<i)&y)){
                    auto x=1;
                    pref[i].insert(x);

                }
            }
        }
    }


}