#include <bits/stdc++.h>
#include <vector>
using namespace std;
int K(int L,int R,vector<int> v,int poc,int indx_poc){
	vector<int> pom;pom.push_back(poc);
	indx_poc=indx_poc;
	for(int j=L-1;j<R;j++){
		if(j!=indx_poc){
			bool p=true;
			for(int k=0;k<pom.size();k++){
				if(pom[k]&v[j]<=pom[k]^v[j])
				p=false;
			}
			if(p)pom.push_back(v[j]);
		}
	}
	return pom.size();
}/*5
1 2 1 3 2
1 5*/
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n,L,R,Q;cin>>n>>Q;
    vector<int> v;int x;
    for(int i=0;i<n;i++){
    	cin>>x;
    	v.push_back(x);
	}
	vector<int> ispis;
	for(int j=0;j<Q;j++){
	int maxi=1;
	cin>>L>>R;
	for(int i=L-1;i<R-1;i++){
		if(K(L,R,v,v[i],i)>maxi)
		maxi=K(L,R,v,v[i],i);
	}
	ispis.push_back(maxi);
	}
	for(int j=0;j<Q;j++){
	cout<<ispis[j]<<endl;
	}
    return 0;
}