#include<bits/stdc++.h>
#define int long long
using namespace std;
struct Node{
int l,r;
}arr[50005];
int n,m;
int vis[50005],num[50005],ans[2][50005];
bool cmp(Node x,Node y){
if(x.l/sqrt(n)!=y.l/sqrt(n)){
return x.l<y.l;
}
return x.r<y.r;
}
signed main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>num[i];
}
for(int i=1;i<=m;i++){
cin>>arr[i].l>>arr[i].r;
}
sort(arr+1,arr+m+1,cmp);
int left=1,right=1;
for(int i=1;i<=m;i++){
int sum=0;
while(left<arr[i].l){
left--;
vis[num[left]]++;
if(vis[num[left]]==2){
sum++;
}
}
while(left>arr[i].l){
vis[num[left]]--;
if(vis[num[left]]==1){
sum--;
}
left++;
}
while(right<arr[i].r){
right++;
vis[num[right]]++;
if(vis[num[right]]==2){
sum++;
}
}
while(right>arr[i].r){
vis[num[right]]--;
if(vis[num[right]]==1){
sum--;
}
right--;
}
if(sum==0){
cout<<"Yes"<<endl;
}else{
cout<<"No"<<endl;
}
}
return 0;
}