#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;

const int MAXN=500009;
int niz[MAXN];
int pref[MAXN][32];


signed main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);

    int n,q;cin >> n >> q;
    for(int i=1; i<=n; i++) cin >> niz[i];
    for(int i=1; i<=n; i++){
        for(int j=0; j<30; j++)
            pref[i][j]=pref[i-1][j]+(((niz[i]&(1<<j))>0)&&(1<<j+1)>niz[i]);
    }
    while(q--){
        int l,r;cin >> l >> r;
        int maxi=0;
        for(int i=0; i<30; i++){
            maxi=max(maxi,pref[r][i]-pref[l-1][i]);
            //cout << pref[r][i] << "-" << pref[l-1][i] << endl;
        }

        cout << maxi << endl;
    }




    return 0;
}