#include <bits/stdc++.h>

using namespace std;

#define NMax 500005
#define AMax 1000000

vector <int> nsd(AMax);

vector<int> najbliziStepenDvojke()
{
    /*for (int i=1; i<=1000; i++)
    {
        int l=log2(i);
        nsd[i]=l+1;
    }
    return nsd;*/
    int x=2, l=1;
    for (long long i=1; i<=AMax; i++)
    {
        if (i<x)
        {
            nsd[i]=l;
        }
        else
        {
            x=x*2;
            l++;
            nsd[i]=l;
        }
    }
    return nsd;
}

#define SMax 25

vector<int> m(SMax, 0);

int a[NMax];
int ans[NMax];

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n, q;
    cin>> n >> q;
    for (int i=0; i<n; i++)
    {
        cin>> a[i];
    }
    najbliziStepenDvojke();

    for (int i=0; i<q; i++)
    {
        int l, r;
        cin>> l >> r;
        int s=0;
        for (int j=l-1; j<r; j++)
        {
            m[nsd[a[j]]]++;
        }
        for (int j=l-1; j<r; j++)
        {
            if(m[nsd[a[j]]]>s)
            {
                s=m[nsd[a[j]]];
            }
            m[nsd[a[j]]]=0;
        }
        ans[i]=s;
    }
    for (int i=0; i<q; i++)
    {
        cout<< ans[i]<< endl;
    }
    return 0;
}