#include <bits/stdc++.h>

using namespace std;

void func(vector<int> niz, int a, int b, int& zb)
{
    for(int i = a; i < b; i++)
        for(int j = i; j < b; j++)
            if(niz[i] & niz[j] <= niz[i] ^ niz[j])
                return;
    zb = b - a + 1;
}

int main()
{
    int n, q, b, l, r, x, y, k, maxk;
    cin >> n >> q;
    vector<int> niz(n, 0);
    vector<pair<int, int>> upiti(q);
    for(int i = 0; i < n; i++)
    {
        cin >> b;
        niz[i] = b;
    }
    for(int i = 0; i < q; i++)
    {
        cin >> l >> r;
        upiti[i] = make_pair(l-1, r-1);
    }

    for(int g = 0; g < q; g++)
    {
        k = 0;
        maxk = 0;
        x = upiti[g].first;
        y = upiti[g].second;

        for(int i = x; i < y; i ++)
        {
            for(int j = i; j < y; j++)
            {
                func(niz, i, j, k);
                if(k > maxk)
                    maxk = k;
            }
        }
        cout << maxk << "\n";
    }
}