#include <bits/stdc++.h>

using namespace std;


void odradi(vector<int> &v, int i){
    for(i; i >= 0; i--){
        for (int j = v.size()-1; j > i; j--){
                if((v[i] | v[j]) > v[i] || (v[i] | v[j]) > v[j]){
                    int a = (v[i] | v[j]);
                    int b = (v[i] & v[j]);
                    v[i] = a;
                    v[j] = b;
                }
        }
    }
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);

    int n; cin >> n;

    vector<int> v (n);

    for(int i = 0; i < n; i++){
        cin >> v[i];
    }

    vector<int> ov (n);
    
    for(int j = 0; j < v.size(); j++){
                ov[j] = v[j]; 
            }

    odradi(ov,ov.size()-2);

    int q; cin >> q;

    for(int i = 0; i < q; i++){
        int t, p, x;
        cin >> t >> p;
        p--;
        if(t == 1){
            cin >> x;
            v[p] = x;
            for(int j = 0; j <= p; j++){
                ov[j] = v[j]; 
            }
            odradi(ov,p);}
        else{
            cout << ov[p] << '\n';}

    }





    


    return 0;
}