#include <bits/stdc++.h>
#define endl '\n'

using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin>>n;
    int q;
    cin>>q;
    vector<int> v(n+1);
    for(int i=1;i<=n;i++)cin>>v[i];
    vector<vector<int>> m(31);
    for(int i=0;i<31;i++)m[i].assign(n+1,0);
    for(int i=1;i<=n;i++){
        int br=v[i];
        for(int j=30;j>=0;j--){
            if((1<<j)&br){
                m[j][i]=1;
                break;
            }
        }
    }
    for(int i=0;i<=30;i++){
        for(int j=1;j<=n;j++)m[i][j]+=m[i][j-1];
    }

    for(int w=0;w<q;w++){
        int l,r;
        cin>>l>>r;
        int ans=0;
        l--;
        for(int i=0;i<=30;i++)ans=max(ans,m[i][r]-m[i][l]);
        cout<<ans<<endl;
    }

    return 0;
}