#include <bits/stdc++.h>

using namespace std;

#define MAXN 100010

long long n,q;
long long a[MAXN],b[MAXN];

int main()
{
    ios_base::sync_with_stdio(false);
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    cin>>n;
    for (long long i=1;i<=n;i++) cin>>a[i];
    for (long long i=1;i<=n;i++) b[i]=a[i];
    long long poz1=1,poz2=2;
    while (poz1<poz2 and poz2<=n)
    {
        if (poz1==poz2) {poz2++;continue;}
        long long val1=b[poz1]|b[poz2];
        long long val2=b[poz1]&b[poz2];
        if (val1==b[poz1]) {poz1++;continue;}
        b[poz1]=val1;b[poz2]=val2;poz2++;
    }
    cin>>q;
    for (long long z=0;z<q;z++)
    {
        long long t;cin>>t;
        if (t==0)
        {
            long long k;cin>>k;
            cout<<b[k]<<endl;
        }
        if (t==1)
        {
            long long k,x;cin>>k>>x;a[k]=x;
            for (long long i=1;i<=n;i++) b[i]=a[i];
            long long poz1=1,poz2=2;
            while (poz1<poz2 and poz2<=n)
            {
                if (poz1==poz2) {poz2++;continue;}
                long long val1=b[poz1]|b[poz2];
                long long val2=b[poz1]&b[poz2];
                if (val1==b[poz1]) {poz1++;continue;}
                b[poz1]=val1;b[poz2]=val2;poz2++;
            }
        }
    }
}