/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <iostream>
#include <bits/stdc++.h>

using namespace std;

struct Element{
    long long vrednost;
    int index;
    int interval;
};

bool uporediVrednost(Element e1, Element e2){
    if(e1.vrednost>e2.vrednost){
        return false;
    }
    return true;
}

int main()
{
    ios_base::sync_with_stdio(false);
    int n,q;
    cin>>n>>q;
    vector<Element> a(n);
    vector<int> resenja(q);
    long long maxElement=0;
    for(int i=0;i<n;i++){
        cin>>a[i].vrednost;
        a[i].index=i;
    }
    
    for(int i=0;i<n;i++){
        long long k1,k2;
        int br=0;
        k1=1;
        k2=2;
        while(a[i].vrednost>k1-1){
            br++;
            k1*=2;
            k2*=2;
        }
        a[i].interval=br;
    }
    
    for(int i=0;i<q;i++){
        map<int, int> m;
        int l,r;
        cin>>l>>r;
        l--;
        r--;
        for(int j=l;j<=r;j++){
            if(m.find(a[j].interval)==m.end()){
                m[a[j].interval]=1;
            }
            else{
                m[a[j].interval]++;
            }
        }
        int brmaxi=0;
        for(int j=1;j<=m.size();j++){
            if(m[j]>brmaxi){
                brmaxi=m[j];
            }
        }
        resenja[i]=brmaxi;
    }
    
    for(int i=0;i<q;i++){
        cout<<resenja[i]<<endl;
    }
    return 0;
}