#define int long long
using namespace std;
int n,q,op,u,l,a[200001],c[200001][2];
inline int lowbit(int x){
return x & -x;
}
inline void upd(int x,int y,int z){
for(;x <= n;x += lowbit(x)){
c[x][z] ^= y;
}
}
inline int sum(int x,int z){
int rtn = 0;
for(;x;x -= lowbit(x)){
rtn ^= c[x][z];
}
return rtn;
}
signed main(){
scanf("%lld%lld",&n,&q);
for(int i = 1;i <= n;i ++){
scanf("%lld",&a[i]);
upd(i,a[i],i & 1);
}
for(int i = 1;i <= q;i ++){
scanf("%lld%lld%lld",&op,&u,&l);
if(op == 1){
upd(u,a[u] ^ l,u & 1);
}
else{
if((l + u) & 1){
printf("0\n");
}
else{
printf("%lld\n",sum(l,u & 1) - sum(u - 1,u & 1));
}
}
}
return 0;
}```