#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int MOD = 1e9 + 7;
void solve(){
int n, q;
cin >> n >> q;
vector<int> a(n + 1);
vector<int>pre(n + 1);
set<int> s;
map<int, set<int>> p_idx_even, p_idx_odd;
for(int i = 1; i <= n; i++){
cin >> a[i];
if(a[i] != 0)s.insert(i);
pre[i] = pre[i - 1] ^ a[i];
if(i % 2 == 0)p_idx_even[pre[i]].insert(i);
else p_idx_odd[pre[i]].insert(i);
}
while(q--){
int x, y;
cin >> x >> y;
auto g = s.lower_bound(x);
if(g == s.end() || (*g) > y){
cout << 0 << "\n";
continue;
}
if((pre[y] ^ pre[x - 1]) != 0){
cout << -1 << "\n";
}else{
if((y - x + 1) % 2 != 0){
cout << 1 << "\n";
}else{
if(a[x] == 0 || a[y] == 0){
cout << 1 <<"\n";
}else{
if((x - 1) % 2 == 0){
auto g = p_idx_odd[pre[x - 1]].lower_bound(x);
if(g == p_idx_odd[pre[x - 1]].end() || (*g) > y){
cout << -1 << "\n";
}else{
cout << 2 << "\n";
}
}else{
auto g = p_idx_even[pre[x - 1]].lower_bound(x);
if(g == p_idx_even[pre[x - 1]].end() || (*g) > y){
cout << -1 << "\n";
}else{
cout << 2 << "\n";
}
}
}
}
}
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int t = 1;
// cin >> t;
for(int i = 1; i <= t; i++){
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE1PRCA9IDFlOSArIDc7Cgp2b2lkIHNvbHZlKCl7CgkKCWludCBuLCBxOwoJY2luID4+IG4gPj4gcTsKCQoJdmVjdG9yPGludD4gYShuICsgMSk7Cgl2ZWN0b3I8aW50PnByZShuICsgMSk7CglzZXQ8aW50PiBzOwoJbWFwPGludCwgc2V0PGludD4+IHBfaWR4X2V2ZW4sIHBfaWR4X29kZDsKCWZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKXsKCQljaW4gPj4gYVtpXTsKCQlpZihhW2ldICE9IDApcy5pbnNlcnQoaSk7CgkJcHJlW2ldID0gcHJlW2kgLSAxXSBeIGFbaV07CgkJaWYoaSAlIDIgPT0gMClwX2lkeF9ldmVuW3ByZVtpXV0uaW5zZXJ0KGkpOwoJCWVsc2UgcF9pZHhfb2RkW3ByZVtpXV0uaW5zZXJ0KGkpOwoKCX0KCQoJd2hpbGUocS0tKXsKCQlpbnQgeCwgeTsKCQljaW4gPj4geCA+PiB5OwoJCWF1dG8gZyA9IHMubG93ZXJfYm91bmQoeCk7CgkJaWYoZyA9PSBzLmVuZCgpIHx8ICgqZykgPiB5KXsKCQkJY291dCA8PCAwIDw8ICJcbiI7CgkJCWNvbnRpbnVlOwoJCX0KCQlpZigocHJlW3ldIF4gcHJlW3ggLSAxXSkgIT0gMCl7CgkJCWNvdXQgPDwgLTEgPDwgIlxuIjsKCQl9ZWxzZXsKCQkJaWYoKHkgLSB4ICsgMSkgJSAyICE9IDApewoJCQkJY291dCA8PCAxIDw8ICJcbiI7CgkJCX1lbHNlewoJCQkJaWYoYVt4XSA9PSAwIHx8IGFbeV0gPT0gMCl7CgkJCQkJY291dCA8PCAxIDw8IlxuIjsKCQkJCX1lbHNlewoJCQkJCWlmKCh4IC0gMSkgJSAyID09IDApewoJCQkJCQlhdXRvIGcgPSBwX2lkeF9vZGRbcHJlW3ggLSAxXV0ubG93ZXJfYm91bmQoeCk7CgkJCQkJCWlmKGcgPT0gcF9pZHhfb2RkW3ByZVt4IC0gMV1dLmVuZCgpIHx8ICgqZykgPiB5KXsKCQkJCgkJCQkJCQljb3V0IDw8ICAtMSA8PCAiXG4iOwoJCQkJCQl9ZWxzZXsKCQkJCQkJCWNvdXQgPDwgMiA8PCAiXG4iOwoJCQkJCQl9CgkJCQkJfWVsc2V7CgkJCQkJCWF1dG8gZyA9IHBfaWR4X2V2ZW5bcHJlW3ggLSAxXV0ubG93ZXJfYm91bmQoeCk7CgkJCQkJCWlmKGcgPT0gcF9pZHhfZXZlbltwcmVbeCAtIDFdXS5lbmQoKSB8fCAoKmcpID4geSl7CgkJCQkJCQljb3V0IDw8IC0xIDw8ICJcbiI7CgkJCQkJCX1lbHNlewoJCQkJCQkJY291dCA8PCAyIDw8ICJcbiI7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0KCQl9Cgl9CgkKfQoKaW50IG1haW4oKXsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoJY2luLnRpZShudWxscHRyKTsKCQoJaW50IHQgPSAxOwoJLy8gY2luID4+IHQ7CgkKCWZvcihpbnQgaSA9IDE7IGkgPD0gdDsgaSsrKXsKCQlzb2x2ZSgpOwoJfQoJcmV0dXJuIDA7Cn0=