#include <bits/stdc++.h>
using namespace std;

vector<long long> a;

int main()
{
    cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(false);
    int n, q; cin >> n >> q;
    for(int i = 0; i < n; i++){
        long long x; cin >> x;
        a.push_back(x);
    }
    while(q--){
        int l, r; cin >> l >> r;
        l--;
        r--;
        long long b[r-l+1], maxB = 0;
        for(int i = l; i <= r; i++){
            b[i-l] = a[i];
            maxB = max(maxB, a[i]);
        }
        sort(b, b+r-l+1);
        int rez = 1;
        int poz = 0;
        vector<int> pozicije;
        pozicije.clear();
        for(long long stI = 2; stI <= maxB*2; stI*=2){
            if(stI > maxB*2) break;
            poz = 0;
            int l0 = 0, r0 = r-l+1;
            while(l0 < r0){
                int mid = (l0 + r0)/2;
                if(b[mid] < stI){
                    l0 = mid+1;
                    poz = mid;
                }
                else r0 = mid;
            }
            pozicije.push_back(poz);
        }
        rez = max(rez, pozicije[0]+1);
        for(int i = 1; i < pozicije.size(); i++){
            rez = max(rez, pozicije[i]-pozicije[i-1]);
        }
        cout<<rez<<endl;
    }
    return 0;
}