#include <bits/stdc++.h>

using namespace std;



int main()
{
    ios_base::sync_with_stdio(false);

    cin.tie(NULL);

    int n, q;
    cin>>n>> q;


    vector<vector<int> > prefiks(30,vector<int>(n+ 1,0));

    for(int i =1;i<=n;i++)

    {
        int a;

        cin>>a;


        int MSB=31-__builtin_clz(a);



        for (int b=0;b<30 ;b++)
            {


            prefiks[b][i]=prefiks[b][i-1];

        }

        prefiks[MSB][i]++;
    }

    while(q--)
        {

        int l,f;
        cin>>l >>f;

        int ans=0;


        for(int b=0; b< 30; b++)
        {
            ans=max(ans,prefiks[b][f]- prefiks[b][l- 1]);

        }
        cout<<ans<<"\n";



    }

    return 0;


}