#include <bits/stdc++.h>

using namespace std;

int main()
{
    int N,Q;
    cin>>N>>Q;
    vector<int> v (N);
    map<int,int> szamdb;
    for(int i=0;i<N;i++)
    {
        cin>>v[i];
    }
    int a,b;
    for(int i=0;i<Q;i++)
    {
        cin>>a>>b;
        a--;
        b--;
        vector<int> jo;
        int maxi = 0;
        szamdb.clear();
        for(int j=a;j<=b;j++)
        {
            szamdb[v[j]]++;
        }
        for(int j=a;j<=b;j++)
        {
            if((v[j] & v[j]) > (v[j] ^ v[j]))
            {
                for(int k=0;k<szamdb[v[j]];k++)
                {
                    jo.push_back(v[j]);
                }
                for(auto p: szamdb)
                {
                    if(p.first == v[j])
                    {
                        continue;
                    }

                    bool rossz=false;

                    int s = jo.size();
                    for(int k = 0; k<s;k++)
                    {
                        if((jo[k] & p.first) > (jo[k] ^ p.first) )
                        {
                            continue;
                        }
                            rossz=true;
                            break;
                    }
                    if(rossz)
                    {
                        continue;
                    }
                    for(int l=0;l<p.second;l++)
                        {
                            jo.push_back(p.first);
                        }
                }
                if(maxi < jo.size())
                {
                    maxi = jo.size();
                }


                jo.clear();
            }
            else
                continue;

        }
        cout<<maxi<<"\n";
    }

    return 0;
}