#include<bits/stdc++.h>
#define int long long
using namespace std;
const int MAXN=5e4+5,MAXM=1e6+5;
int n,q,q1,q2,a[MAXM],cnt[MAXM],ans=0,ans_a[MAXM],sqr,k;
unordered_map<int,int> st;
struct P{
int l,r,id;
};
bool cmp(P x,P y){
if(x.l/sqr==y.l/sqr)
return x.r<y.r;
else return x.l<y.l;
}
void add(int i){
st[i]++;
if(st[a[i]]==1) ans++;
//kcout<<i<<": "<<cnt[i]<<" "<<ans<<endl;
}
void del(int i){
st[i]--;
if(st[a[i]]==0) ans--;
//cout<<ans<<" ";
}
P c[MAXM];
signed main(){
cin>>n>>q;
sqr=sqrt(n);
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=q;i++){
cin>>c[i].l>>c[i].r;
c[i].id=i;
}
sort(c+1,c+q+1,cmp);
int L=1,R=0;
for(int i=1;i<=q;i++){
while(L>c[i].l) add(a[--L]);
while(R<c[i].r) add(a[++R]);
while(L<c[i].l) del(a[L++]);
while(R>c[i].r) del(a[R--]);
if(ans==c[i].r-c[i].l+1) ans_a[c[i].id]=1;
else ans_a[c[i].id]=0;
}
for(int i=1;i<=q;i++){
cout<<((ans_a[i])?"Yes\n":"No\n");
}
return 0;
}
样例已过