#include<bits/stdc++.h>
#define N 100010
using namespace std;
int read()
{
int x = 0,f = 1;
char c = getchar();
while(c<'0' || c>'9')
{
if(c=='-') f = -1;
c = getchar();
}
while(c>='0' && c<='9')
{
x = (x<<3)+(x<<1)+(c^48);
c = getchar();
}
return x*f;
}
struct rec
{
int l,r,id;
};
int sum = 0,a[N],f[N],len,ans[N];
rec q[N];
bool cmp(rec a,rec b)
{
return (a.l/len==b.l/len ? a.r<b.r : a.l<b.l);
}
void add(int x)
{
f[a[x]]++;
if (f[a[x]]>1) sum++;
}
void dele(int x)
{
f[a[x]]--;
if (f[a[x]]==1) sum--;
}
int main()
{
int n=read(),m=read();
len = sqrt(n);
for (int i=1;i<=n;i++)
a[i]=read();
for (int i=1;i<=m;i++)
q[i].l=read(),q[i].r=read(),q[i].id=i;
sort(q+1,q+m+1,cmp);
int l=1,r=0;
for (int i=1;i<=m;i++)
{
while (l>q[i].l) add(--l);
while (l<q[i].l) dele(l++);
while (r<q[i].r) add(++r);
while (r>q[i].r) dele(r--);
if(sum) ans[q[i].id]=false;
else ans[q[i].id]=true;
}
for (int i=1;i<=m;i++)
{
if (ans[i]) cout << "Yes" << endl;
else cout << "No" << endl;
}
return 0;
}
#2 #6 #7 WA