#include <bits/stdc++.h>

using namespace std;

int max_count(vector<int> p, int l, int r) {
	map<int, int> m;
	
	int v = 0;
	for (int i = l; i <= r; i++) {
		m[p[i]]++;
		v = max(m[p[i]], v);
	}
	
	return v;
} 

int main(){
	int n, q;
	cin >> n >> q;
	vector<int> a(n);
	for (int i = 0; i < n; i++) cin >> a[i];
	
	vector<pair<int, int>> t(q);
	for (int i = 0; i < q; i++) {
		cin >> t[i].first >> t[i].second;
	}
	
	vector<int> u(n);
	for (int i = 0; i < n; i++) {
		for (int j = i+1; j < n; j++) {
			if((a[i] & a[j]) > (a[i] ^ a[j])) {
				u[i]++;
				u[j]++;
			}
		}
	}
	
	for (int i = 0; i < q; i++) {
 		cout << max_count(u, t[i].first-1, t[i].second-1) << '\n';
	}
	return 0;
}