#include <bits/stdc++.h>
using namespace std;
using ll=long long;
#define endl "\n"
///freopen("input.txt", "r", stdin);
///freopen("output.txt", "w", stdout);
void solve(){
    int n,q;
    cin>>n>>q;

    vector<int>a(n);
    for(int i=0;i<n;i++)cin>>a[i];

    for(int i=0;i<n;i++){
        int broj=a[i];
        for(int x=30;x>=0;x--){
            if(broj&(1<<x)){
                broj=(1<<x);
                break;
            }
        }
        a[i]=broj;
    }

    ///for(int x:a)cout<<x<<" ";

    vector<vector<int>>pref(30,vector<int>(n));
    for(int k=0;k<30;k++){
        for(int i=0;i<n;i++){
            if(i)pref[k][i]+=pref[k][i-1];

            int broj=a[i];

            if(broj&(1<<k)){
                pref[k][i]++;
            }

        }
    }

//    for(int i=0;i<30;i++){
//        cout<<pref[i][n-1]<<" ";
//    }

    while(q--){
        int l,r;
        cin>>l>>r;
        l--;r--;
        int ans=0;

        for(int i=0;i<30;i++){
            int br=pref[i][r];
            if(l)br-=pref[i][l-1];


            ans=max(ans,br);
        }
        cout<<ans<<endl;
    }
}
int main(){
    ios_base::sync_with_stdio(false);cin.tie(0);
    int t=1;///cin>>t;
    while(t--)solve();
    return 0;
}