#include <iostream>

using namespace std;

const int MAXN = 100005;
int cnt[35];
int A[MAXN];

int main()
{
#ifdef DRZAVNO
    freopen("../input.txt", "r", stdin);
    freopen("../output.txt", "w", stdout);
#endif // DRZAVNO
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);

    int n;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> A[i];
        for (int o = 0; o <= 30; o++) {
            if (A[i] & (1 << o)) {
                cnt[o]++;
            }
        }
    }

    int q;
    cin >> q;
    for (int i = 0; i < q; i++) {
        int t;
        cin >> t;
        if (t == 1) {
            int k;
            cin >> k;
            int x;
            cin >> x;
            for (int o = 0; o <= 30; o++) {
                bool b1 = A[i] & (1 << o);
                bool b2 = x & (1 << o);
                if (!b1 && b2) {
                    cnt[o]++;
                }
                if (b1 && !b2) {
                    cnt[o]--;
                }
            }
            A[k] = x;
        }
        else if (t == 0) {
            int k;
            cin >> k;

            int ans = 0;
            for (int o = 0; o <= 30; o++) {
                if (k <= cnt[o]) {
                    ans |= (1 << o);
                }
            }
            cout << ans << endl;


        }

    }


    return 0;
}