#include <iostream>
#include <vector>
#include <cmath>

using namespace std;





int k(int l, int r, long long a[])
{
    int k = 1;
    int kmax = 1;
    vector<int> b;
    for(int i = l - 1; i < r; i++)
    {
        k = 1;
        b.resize(1);
        b[0] = a[i];
        for(int j = i + 1; j < r; j++)
        {
            if(a[i] ^ a[j] < a[i] & a[j])
            {
                int t = b.size();
                while(t >= 0 && a[j] ^ b[t] < a[j] & b[t]) t--;
                if(t < 0)
                {
                    b.push_back(a[j]);
                    k++;
                    t = b.size() + 1;
                    b.resize(t);
                }
            }
        }
        if(k > kmax) kmax = k;
    }
    return kmax;
}


int main()
{
    int n, q;
    cin>>n>>q;
    long long a[n];
    for(int i = 0; i < n; i++)
        cin>>a[i];
    int upit[2 * q];
    for(int i = 0; i < q; i++)
        cin>>upit[i, q + i];
    vector<vector<int>> stdva(n);
    for(int i = 0; i < q; i++)
    {
        cout<<k(upit[i], upit[i + q], a)<<endl;
    }
    return 0;
}