namespace ConsoleApp3
{
    internal class Program
    {
        static void Res(int l,int d, int[] a)
        {
            bool t = true;
            int max = int.MinValue;
            List<int> b =new List<int>();
            for(int i = l; i < d; i++)
            {
                b.Add(a[i]);
                for (int j = i + 1; j < d; j++)
                {
                    if (a[j] == a[i])
                    {
                        continue;
                    }
                    t = true; 
                    foreach(int x in b)
                    {
                        if ((a[j]^x) >= (a[j] & x))
                        {
                            t = false; 
                            break;
                        }
                    }
                    if (t)
                    {
                        b.Add(a[j]);
                    }
                }
                int br = 0;
                for(int j = l; j < d; j++)
                {
                    if (b.Contains(a[j]))
                        br++;
                }
                if (max < br)
                    max = br;
                b.Clear();
            }
            Console.WriteLine(max);
        }
        static void Main(string[] args)
        {
            string[] c = Console.ReadLine().Split();
            int n = int.Parse(c[0]), m = int.Parse(c[1]);
            c = Console.ReadLine().Split();
            int[] a = new int[n];
            for (int i = 0; i < n; i++)
            {
                a[i] = int.Parse(c[i]);
            }
            for (int i = 0; i < m; i++)
            {
                c = Console.ReadLine().Split();
                Res(int.Parse(c[0]), int.Parse(c[1]),a);
            }
        }
    }
}