#include <bits/stdc++.h>
using namespace std;
long long n, q, x, y, maks, br, pom;
long long a[500005], sum[500005];
void kroz(){
    for(int i = 1; i <= n; i++){
        maks = 0;
        for(int j = 1; j <= i; j++){
            if((a[i]&a[j])>(a[i]^a[j])) maks++;
        }
        sum[i] = maks;
    }
}
int main(){
    scanf("%lld%lld", &n, &q);
    for(int i = 1; i <= n; i++){
        cin >> a[i];
    }
    kroz();
    for(int k = 1; k <= q; k++){
        scanf("%lld%lld", &x, &y);
        br = 0;
        for(int i = x; i <= y; i++){
            if(sum[i]>br){
                br = sum[i];
                pom = i;
            }
        }
         for(int i = 1; i <= x-1; i++){
            if((a[pom]&a[i])>(a[pom]^a[i])) br--;
        }
        cout<<br<<endl;
    }
return 0;
}