#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
int n, q, l, r, br, rez, mnm = 1e9, maks = 0;
int a[500005];
int bitovi[1000];
int maksimumi[500005];
//map <int, int> m; ///prvi broj koji je maks bit broja a drugi je broj takvih brojeva ciji je maks bit taj
int main(){
    cin >> n >> q;
    for(int i = 1; i <= n; i++){
        cin >> a[i];
        //mnm = min(mnm, a[i]);
        //maks = max(maks, a[i]);
        int bit = log2(a[i]) + 1;
       // m[bit]++;
        //maksimumi[i] = bit;
    }
    /*for(auto p: m){
        cout << p.first << " ima " << p.second << " ";
    }*/
    while(q--){
        cin >> l >> r;
        maks = 0;
        map <int, int> m;
        for(int i = l; i <= r; i++){
            int bit = log2(a[i]) + 1;
            m[bit]++;
            maks = max(maks, bit);
        }
        cout << m[maks] << endl;;
//        //br = 1;
//        rez = 0;
//        for(int i = l; i <= r - 1; i++){
//            br = 1;
//            for(int j = i + 1; j <= r; j++){
//                if(a[j] >= a[i] and a[i] != 1)
//                    br++;
//            }
//            rez = max(rez, br);
//        }
//        cout << rez << endl;

    }
    return 0;
}