#include <bits/stdc++.h>
using namespace std;
void build(int *tree, int *a, int i, int tl, int tr)
{
if (tl == tr)
{
tree[i] = a[tl];
return;
}
int mid = (tl + tr) / 2;
build(tree, a, 2 * i, tl, mid);
build(tree, a, 2 * i + 1, mid + 1, tr);
tree[i] = tree[2 * i] ^ tree[2 * i + 1];
}
int query(int *tree, int i, int tl, int tr, int l, int r)
{
if (tr < l || tl > r)
{
return 0;
}
if (l <= tl && tr <= r)
{
return tree[i];
}
/// partial overlap part here
int mid = (tl + tr) / 2;
int left_child = query(tree, 2 * i, tl, mid, l, r);
int right_child = query(tree, 2 * i + 1, mid + 1, tr, l, r);
return left_child ^ right_child;
}
int main()
{
int n;
cin >> n;
int q;
cin >> q;
int a[n];
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
int tree[4 * n];
build(tree, a, 1, 0, n - 1);
while (q--)
{
int l, r;
cin >> l >> r;
l--, r--;
int ans = query(tree, 1, 0, n - 1, l, r);
cout << ans << endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGJ1aWxkKGludCAqdHJlZSwgaW50ICphLCBpbnQgaSwgaW50IHRsLCBpbnQgdHIpCnsKICAgIGlmICh0bCA9PSB0cikKICAgIHsKICAgICAgICB0cmVlW2ldID0gYVt0bF07CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGludCBtaWQgPSAodGwgKyB0cikgLyAyOwogICAgYnVpbGQodHJlZSwgYSwgMiAqIGksIHRsLCBtaWQpOwogICAgYnVpbGQodHJlZSwgYSwgMiAqIGkgKyAxLCBtaWQgKyAxLCB0cik7CiAgICB0cmVlW2ldID0gdHJlZVsyICogaV0gXiB0cmVlWzIgKiBpICsgMV07Cn0KCmludCBxdWVyeShpbnQgKnRyZWUsIGludCBpLCBpbnQgdGwsIGludCB0ciwgaW50IGwsIGludCByKQp7CgogICAgaWYgKHRyIDwgbCB8fCB0bCA+IHIpCiAgICB7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgaWYgKGwgPD0gdGwgJiYgdHIgPD0gcikKICAgIHsKICAgICAgICByZXR1cm4gdHJlZVtpXTsKICAgIH0KCiAgICAvLy8gcGFydGlhbCBvdmVybGFwIHBhcnQgaGVyZQogICAgaW50IG1pZCA9ICh0bCArIHRyKSAvIDI7CiAgICBpbnQgbGVmdF9jaGlsZCA9IHF1ZXJ5KHRyZWUsIDIgKiBpLCB0bCwgbWlkLCBsLCByKTsKICAgIGludCByaWdodF9jaGlsZCA9IHF1ZXJ5KHRyZWUsIDIgKiBpICsgMSwgbWlkICsgMSwgdHIsIGwsIHIpOwogICAgcmV0dXJuIGxlZnRfY2hpbGQgXiByaWdodF9jaGlsZDsKfQppbnQgbWFpbigpCnsKICAgIGludCBuOwogICAgY2luID4+IG47CiAgICBpbnQgcTsKICAgIGNpbiA+PiBxOwogICAgaW50IGFbbl07CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgY2luID4+IGFbaV07CiAgICB9CgogICAgaW50IHRyZWVbNCAqIG5dOwoKICAgIGJ1aWxkKHRyZWUsIGEsIDEsIDAsIG4gLSAxKTsKCiAgICB3aGlsZSAocS0tKQogICAgewogICAgICAgIGludCBsLCByOwogICAgICAgIGNpbiA+PiBsID4+IHI7CiAgICAgICAgbC0tLCByLS07CiAgICAgICAgaW50IGFucyA9IHF1ZXJ5KHRyZWUsIDEsIDAsIG4gLSAxLCBsLCByKTsKICAgICAKICAgICAgICBjb3V0IDw8IGFucyA8PCBlbmRsOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==