#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n,maks=0,q;
    cin>>n>>q;
    vector<int>br(n);
    for(int i=0;i<n;i++){
        cin>>br[i];
        int x=0;
        while(br[i]>=2){
            x++;
            br[i]/=2;
        }
        br[i]=x;
        maks=max(maks,br[i]);
    }
    vector<vector<int>>dp(n,vector<int>(maks+1,0));
    dp[0][br[0]]++;
    for(int i=1;i<n;i++){
        for(int j=0;j<=maks;j++){
            dp[i][j]=dp[i-1][j];
        }
        dp[i][br[i]]++;
    }
    vector<int>izlaz(q);
    for(int i=0;i<q;i++){
        int a,b,iz=0;
        cin>>a>>b;
        a--;
        b--;
        if(a==0){
            for(int j=0;j<=maks;j++){
                iz=max(iz,dp[b][j]);
            }
        }else{
            for(int j=0;j<=maks;j++){
                iz=max(iz,dp[b][j]-dp[a-1][j]);
            }
        }
        izlaz[i]=iz;
    }
    for(int i=0;i<q;i++)
        cout<<izlaz[i]<<endl;
    return 0;
}