#include <bits/stdc++.h>

using namespace std;

#define NMax 500005

vector <int> nsd(NMax);

vector<int> najbliziStepenDvojke(int n, int a[])
{
    for (int i=1; i<=n; i++)
    {
        int l=log2(a[i]);
        nsd[i]=pow(2, l+1);
    }
    return nsd;
}

vector<int> m(NMax, 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(n, a);

    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[j]]++;
        }
        for (int j=l-1; j<r; j++)
        {
            if(m[nsd[j]]>s)
            {
                s=m[nsd[j]];
            }
            m[nsd[j]]=0;
        }
        ans[i]=s;
    }
    for (int i=0; i<q; i++)
    {
        cout<< ans[i]<< endl;
    }
    return 0;
}