#include <iostream>

int main() {
    int n, q;
    int arr[500000], temp[500000], temp_l[500000], temp_r[500000];
    scanf("%d%d", &n, &q);
    for (int i=0; i<n; i++) scanf("%d", &arr[i]);

    temp[0]=0;
    for (int i=1; i<n; i++) {
        for (int j=0; j<n; j++) {
            if (arr[i-1] & arr[i] > arr[i-1] ^ arr[i]) {
                temp[i]++;
                temp_r[i]=i;
            }
            else {
                temp[i]=0;
                temp_l[i]=i;
                temp_r[i]=i;
            }
        }
    }

    for (int i=0; i<n; i++) printf("%d ", temp[i]);

    printf("\n");

    for (int i=0; i<q; i++) {
        int l, r;
        scanf("%d%d", &l, &r);
        if (l-1<=temp_l[i] && r-1>=temp_r[i]) printf("%d\n", temp[i]);
    }
    scanf("%d", &n);
    return 0;
}