#include <iostream>
#include <vector>

using namespace std;
int najduzi(const vector<int>& niz, int l, int d);
bool provera(int x, int y);


int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n, q;
    cin>>n>>q;

    vector<int> niz(n);
    for(int& i : niz)
        cin>>i;

    for(int i=0; i<q; i++)
    {
        int l, d;
        cin>>l>>d;
        l--; d--;
        cout<<najduzi(niz, l, d)<<"\n";
    }

    return 0;
}

bool provera(int x, int y)
{
    int res = x ^ y;
    int res2 = x & y;

    if(res < res2)
        return true;
    else
        return false;
}

int najduzi(const vector<int>& niz, int l, int d)
{
    int maks = 0;
    for(int i=l; i<d; i++)
    {
        int br = 1;
        for(int j=i+1; j<=d; j++)
        {
            if(provera(niz[j], niz[i]))
                br++;
        }
        if(br > maks)
            maks = br;
    }
    return maks;
}