#include <stdio.h>
#include <stdlib.h>
long long max(long long a,long long b){
    if(a>=b)
        return a;
    return b;
}
int main()
{
    long long N,Q,A[100000],L,R,X[100000],a1,a2,a3,a4,a5,a6,a7,a8,k,z,y,s;
    scanf("%lld%lld",&N,&Q);
    for(long long i=0;i<N;i++)
        scanf("%lld",&A[i]);
    for(long long i=0;i<Q;i++){
        scanf("%lld%lld",&L,&R);
        a1=0;
        a2=0;
        a3=0;
        a4=0;
        a5=0;
        a6=0;
        a7=0;
        a8=0;
        k=0;
       for(int i=L-1;i<R;i++){
          if(A[i]==1)
            a1++;
          else if(A[i]==2)
            a2++;
          else if(A[i]==3)
            a3++;
          else if(A[i]==4)
            a4++;
          else if(A[i]==5)
            a5++;
          else if(A[i]==6)
            a6++;
          else if(A[i]==7)
            a7++;
          else if(A[i]==8)
            a8++;

        }
        z=a4+a5+a6+a7;
        y=a2+a3;
        s=max(max(max(a1,a2),max(a3,a4)),max(max(a5,a6),max(a7,a8)));
        k=max(max(z,y),s);
        X[i]=k;
    }
    for(int i=0;i<Q;i++)
        printf("%lld\n",X[i]);

    return 0;
}