#include<iostream>
#include<map>
#include<vector>
using namespace std;
int maxnum=0,minnum=2005;
int w[2005],a[2005];
map<int,map<int,int>> t;
map<int,bool> p;
int main()
{
int n,q;
cin>>n>>q;
for(int i=1;i<=n;i++)
{
cin>>a[i];
maxnum=max(maxnum,a[i]);
minnum=min(minnum,a[i]);
}
for(int i=n;i>=1;i--)
{
for(int j=minnum;j<=maxnum;j++)
{
t[i][j]=t[i+1][j];
}
t[i][a[i]]=i;
}
for(int i=1;i<=q;i++)
{
int l,r;
cin>>l>>r;
int k=0;
for(int j=l;j<=r;j++)
{
if(p[a[j]]==false)
{
p[a[j]]=true;
w[++k]=a[j];
}
}
for(int j=l;j<=r;j++)
{
p[a[j]]=false;
}
int ans=2005,flag=0;
for(int i=l;i<=r;i++)
{
int x=0;
for(int j=1;j<=k;j++)
{
if(t[i][w[j]]>r||t[i][w[j]]==0)
{
flag=1;
break;
}
x=max(t[i][w[j]],x);
}
if(flag==1)
{
break;
}
ans=min(ans,x-i+1);
}
cout<<ans<<endl;
}
return 0;
}