#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 2e5 + 5;
int bit[maxn][2];
void update(int p, int b, int val){
for(; p < maxn; p += p & -p) bit[p][b] ^= val;
}
int get(int p, int b){
int res = 0;
for(; p; p -= p & -p) res ^= bit[p][b];
return res;
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int n, q; cin >> n >> q;
vector<int> a(n + 1);
for(int i = 1; i <= n; i++){
cin >> a[i];
update(i, i % 2, a[i]);
}
while(q--){
int t, l, r; cin >> t >> l >> r;
if(t == 1){
update(l, l % 2, r ^ a[l]);
a[l] = r;
}else cout << ((r % 2 == l % 2) ? (get(r, r % 2) ^ get(l - 1, r % 2)) : 0) << "\n";
}
}