#include<bits/stdc++.h>
using namespace std;
int n,q,a[100005],ans[100005]={0},res=0,cnt[100005]={0},f_k;
struct data
{
int l,r,p;
}ques[100005];
bool cmp(data x,data y)
{
if((x.l-1)/f_k==(y.l-1)/f_k)
return x.r<y.r;
return x.l/f_k<y.l/f_k;
}
void add(int x)
{
if(++cnt[a[x]]==1)
res++;
}
void del(int x)
{
if(--cnt[a[x]]==0)
res--;
}
int main()
{
scanf("%d%d",&n,&q);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=q;i++)
{
scanf("%d%d",&ques[i].l,&ques[i].r);
ques[i].p=i;
}
f_k=sqrt(n);
sort(ques+1,ques+q+1,cmp);
int p1=1,p2=0;
for(int i=1;i<=q;i++)
{
int L=ques[i].l,R=ques[i].r;
while(p1>L)
{
p1--;
add(a[p1]);
}
while(p2<R)
{
p2++;
add(a[p2]);
}
while(p1<L)
{
del(a[p1]);
p1++;
}
while(p2>R)
{
del(a[p2]);
p2--;
}
if(res==(R-L+1))
ans[ques[i].p]=1;
}
for(int i=1;i<=q;i++)
{
if(ans[i]==1)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}