#include <bits/stdc++.h>

using namespace std;

vector <int> v(1000000);

int stependvojke(int n)
{
    int cnt=0;
    while(n>0)
    {
        cnt++;
        n=(n-n%2)/2;
    }
     return cnt;
}


int main()
{
    int n, q, x;
    cin >> n >> q;
    vector <int> ans(n);
    map<int, int> m;
    for (int i=0; i<n; i++)
    {
        cin >> v[i];
    }
    for (int i = 0; i<n; i++)
    {
        x=m.size();
        m[stependvojke(v[i])]=0;
        if (x==m.size())
            ans[i]=ans[i-1]+1;
    }
    /*for (auto i: ans)
        cout << i << " ";*/
    for (int i=0; i<q; i++)
    {
         int l,r;
         cin >> l >> r;
         cout << ans[r-1]-ans[l-1] << endl;
    }

}