#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,q,j=1,a[300005],bit[300005],ans[300005];
map <int,int> mp;
pair <pair<int,int>,int> p[300005];
void UPDATE(int i, int v)
{
while (i<=n) bit[i]^=v,i+=i&(-i);
return;
}
int GET(int l, int r)
{
l--;
int resl=0,resr=0;
while (l>0) resl^=bit[l],l-=l&(-l);
while (r>0) resr^=bit[r],r-=r&(-r);
return (resr^resl);
}
signed main()
{
ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
cin>>n>>q;
for (int i=1;i<=n;i++) cin>>a[i];
for (int i=1;i<=q;i++) cin>>p[i].first.second>>p[i].first.first,p[i].second=i;
sort(p+1,p+q+1);
for (int i=1;i<=n;i++)
{
if (!mp[a[i]]) UPDATE(i,a[i]),mp[a[i]]=i;
else UPDATE(mp[a[i]],a[i]),UPDATE(i,a[i]),mp[a[i]]=i;
while (p[j].first.first==i) ans[p[j].second]=GET(p[j].first.second,p[j].first.first),j++;
}
for (int i=1;i<=q;i++) cout<<ans[i]<<' ';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaW50IGxvbmcgbG9uZwp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbixxLGo9MSxhWzMwMDAwNV0sYml0WzMwMDAwNV0sYW5zWzMwMDAwNV07Cm1hcCA8aW50LGludD4gbXA7CnBhaXIgPHBhaXI8aW50LGludD4saW50PiBwWzMwMDAwNV07CnZvaWQgVVBEQVRFKGludCBpLCBpbnQgdikKewogICAgd2hpbGUgKGk8PW4pIGJpdFtpXV49dixpKz1pJigtaSk7CiAgICByZXR1cm47Cn0KaW50IEdFVChpbnQgbCwgaW50IHIpCnsKICAgIGwtLTsKICAgIGludCByZXNsPTAscmVzcj0wOwogICAgd2hpbGUgKGw+MCkgcmVzbF49Yml0W2xdLGwtPWwmKC1sKTsKICAgIHdoaWxlIChyPjApIHJlc3JePWJpdFtyXSxyLT1yJigtcik7CiAgICByZXR1cm4gKHJlc3JecmVzbCk7Cn0Kc2lnbmVkIG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKSxjaW4udGllKDApLGNvdXQudGllKDApOwogICAgY2luPj5uPj5xOwogICAgZm9yIChpbnQgaT0xO2k8PW47aSsrKSBjaW4+PmFbaV07CiAgICBmb3IgKGludCBpPTE7aTw9cTtpKyspIGNpbj4+cFtpXS5maXJzdC5zZWNvbmQ+PnBbaV0uZmlyc3QuZmlyc3QscFtpXS5zZWNvbmQ9aTsKICAgIHNvcnQocCsxLHArcSsxKTsKICAgIGZvciAoaW50IGk9MTtpPD1uO2krKykKICAgIHsKICAgICAgICBpZiAoIW1wW2FbaV1dKSBVUERBVEUoaSxhW2ldKSxtcFthW2ldXT1pOwogICAgICAgIGVsc2UgVVBEQVRFKG1wW2FbaV1dLGFbaV0pLFVQREFURShpLGFbaV0pLG1wW2FbaV1dPWk7CiAgICAgICAgd2hpbGUgKHBbal0uZmlyc3QuZmlyc3Q9PWkpIGFuc1twW2pdLnNlY29uZF09R0VUKHBbal0uZmlyc3Quc2Vjb25kLHBbal0uZmlyc3QuZmlyc3QpLGorKzsKICAgIH0KICAgIGZvciAoaW50IGk9MTtpPD1xO2krKykgY291dDw8YW5zW2ldPDwnICc7CiAgICByZXR1cm4gMDsKfQ==