#include<bits/stdc++.h>
using namespace std;
int n,m,bl,nowans,nl,nr,cnt[100001],a[100001];
bool ans[100001];
struct ask{
int l,r,id;
}q[100001];
bool cmp(ask a,ask b){
if(a.l/bl==b.l/bl) return a.l<b.l;
else return a.r<b.r;
}
void add(int pos){
if((++cnt[a[pos]])) nowans++;
}
void del(int pos){
if(!(--cnt[a[pos]])) nowans--;
}
int main(){
scanf("%d%d",&n,&m);
bl=sqrt(n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
for(int i=1;i<=m;i++){
scanf("%d%d",&q[i].l,&q[i].r);
q[i].id=i;
}
sort(q+1,q+1+m,cmp);
for(int i=1;i<=m;i++){
int L=q[i].l,R=q[i].r;
while(nl<L){
del(nl);
nl++;
}
while(nl>L){
nl--;
add(nl);
}
while(nr<R){
nr++;
add(nr);
}
while(nr>R){
del(nr);
nr--;
}
if(nowans==(R-L+1)) ans[q[i].id]=1;
}
for(int i=1;i<=m;i++){
if(ans[i]) printf("Yes");
else printf("No");
printf("\n");
}
return 0;
}