#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;

void op(int& x, int &y){
    int i=x&y, ili=x|y;
    x=ili;
    y=i;
}

int main(){
    cin.tie(0);
    ios_base::sync_with_stdio(false);
    int n; cin >> n;
    vector<int> a(n), g(31);
    for(int i=0; i<n; i++)cin >> a[i];
    for(int w=0; w<31; w++){
        for(int b : a){
            if(((1 << w) & b) > 0)g[w]++;
        }
    }
    int q; cin >> q;
    while(q--){
        int t, k; cin >> t >> k;
        k--;
        if(t==1){
            int x; cin >> x;
            for(int w=0; w<31; w++){
                if((1 << w) & a[k])g[w]--;
                if((1 << w)& x)g[w]++;
            }
            a[k]=x;
        }
        else {
            int sol=0;
            for(int w=0; w<31; w++){
                if(g[w] > k){
                    sol += (1 << w);
                }
            }
            cout << sol << '\n';
        }
    }
    return 0;
}