#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
const int N=1000000;
int n,Q,ans,a[N+5],bl,f[N+5],qans[N+5];
struct node{
int l,r,id;
}q[N+5];
bool operator <(const node &a,const node &b){
return a.l/bl^b.l/bl?a.l<b.l:a.r<b.r;
}
void add(int pos){
ans+=(++f[a[pos]]==2);
}
void del(int pos){
ans-=(--f[a[pos]]==1);
}
int main(){
ios::sync_with_stdio(0);
cin>>n>>Q;
bl=sqrt(n);
for (int i=1;i<=n;i++) cin>>a[i];
for (int i=1;i<=Q;i++){
cin>>q[i].l>>q[i].r;
q[i].id=i;
}
sort(q+1,q+Q+1);
int L=1,R=0;
for (int i=1;i<=Q;i++){
while (R<q[i].r) add(++R);
while (L>q[i].l) add(++L);
while (R>q[i].r) del(R--);
while (L<q[i].l) del(L++);
qans[q[i].id]=ans;
}
for (int i=1;i<=Q;i++){
if (qans[i]==0) cout<<"Yes\n";
else cout<<"No\n";
}
}