#include<bits/stdc++.h>
using namespace std;
long long n,ans[1000006],q,a[10004];
struct ask666{
int id,l,r;
}p[10000006];
bool cmp(ask666 x,ask666 y){
if(x.l!=y.l)return x.l<y.l;
return x.r<y.r;
}
long long ask1(int l,int r){
int t;
for(int i=l;i<=r;i++){
t^=(a[i]-a[l-1]);
}return t;
}
long long ask2(int o,int l,int r){
int t;
for(int i=l;i<=r;i++){
t^=(a[i]-a[o-1]);
}return t;
}
int main(){
cin>>n>>q;
for(int i=1;i<=n;i++){
cin>>a[i];
a[i]+=a[i-1];
}
for(int i=1;i<=q;i++){
cin>>p[i].l>>p[i].r;
p[i].id=i;
}
sort(p+1,p+q+1,cmp);
for(int i=1;i<=q;i++){
if(p[i].l==p[i-1].l)
ans[p[i].id]=ans[p[i-1].id]^ask2(p[i].l,p[i-1].r+1,p[i].r);
else
ans[p[i].id]=ask1(p[i].l,p[i].r);
}
for(int i=1;i<=q;i++){
cout<<ans[i]<<"\n";
}
}