rt,
#include<bits/stdc++.h>
using namespace std;
struct ask{
int x,y;
}b[100010];
int a[100010],kuai[100010],you[100010],ans;
bool cmp(ask aa,ask bb){
if(kuai[aa.x]==kuai[bb.x])return aa.y<bb.y;
return kuai[aa.x]<kuai[bb.x];
}
void jian(int point){
if(--you[a[point]]==0)ans--;
}
void jia(int point){
if(++you[a[point]]==1)ans++;
}
int main(){
int n,q;
cin>>n>>q;
int sq=sqrt(n);
for(int i=1;i<=n;i++){
cin>>a[i];
you[a[i]]++;
if(you[a[i]]==1)ans++;
kuai[i]=(i-1)/sq+1;
}
for(int i=1;i<=q;i++){
cin>>b[i].x>>b[i].y;
}
sort(b+1,b+q+1,cmp);
int yuanx=1,yuany=n;
for(int i=1;i<=q;i++){
int x=b[i].x,y=b[i].y;
while(yuanx<x)jian(yuanx++);
while(yuanx>x)jia(--yuanx);
while(yuany<y)jia(++yuany);
while(yuany>y)jian(yuany--);
if(ans==y-x+1)cout<<"Yes\n";
else cout<<"No\n";
}
return 0;
}