#include <bits/stdc++.h>

using namespace std;


vector<int> odradi(vector<int> v){
    for(int i = v.size()-2; 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;
                }
        }
    }
    return v;
}

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); ov = odradi(v);

    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;
            ov = odradi(v);}
        else{
            cout << ov[p] << '\n';}

    }    


    return 0;
}