#include<bits/stdc++.h>
using namespace std;
long long n, q, niz[500050], temp;
long long vektor[35];
long long mat[500050][35];
long long a, b, maks;

void IZJEDNACI(int indeks)
{
    for(int i=1; i<=30; i++)
        mat[indeks][i] = mat[indeks-1][i];
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    cin >> n >> q;
    for(int i=1; i<=n; i++)
    {
        cin >> niz[i];
        temp = log2(niz[i]);
        niz[i] = temp + 1;
    }


    /// O(30N) - LINEARNO
    for(int i=1; i<=n; i++) /// PREFIKS MATRICA
    {
        IZJEDNACI(i); /// mat[i] = mat[i-1]
        mat[i][niz[i]]++;
    }


    for(int i=1; i<=q; i++)
    {
        cin >> a >> b;

        maks = 0;
        for(int i=1; i<=30; i++)
        {
            vektor[i] = mat[b][i] - mat[a-1][i];
            maks = max(maks, vektor[i]);
        }
        cout << maks <<  "\n";
    }

    return 0;
}