#include <iostream>
#include <vector>
using namespace std;
int main()
{
    int n,q;
    cin>>n>>q;
    vector<int>a(n+1);
    vector<int>b(n+1);
    for(int i=1;i<=n;i++)
        cin>>a[i];
    for(int i=1;i<=n;i++)
    {
        int x=1;
        int k=0;
        while(x<=a[i])
        {
            x=x*2;
            k++;
        }
        b[i]=k-1;
    }
    int prefsum[n+1][32];
    for(int j=0;j<32;j++)
    {
        prefsum[0][j]=0;
        for(int i=1;i<=n;i++)
        {
            prefsum[i][j]=prefsum[i-1][j];
            if(b[i]==j)
                prefsum[i][j]++;
        }
    }

    for(int t=0;t<q;t++)
    {
        int p1,p2;
        cin>>p1>>p2;
        int maxi=-1;
        for(int j=0;j<32;j++)
        {
            maxi=max(maxi,prefsum[p2][j]-prefsum[p1-1][j]);
        }
        cout<<maxi<<endl;
    }
}