#include <stdio.h>
#define FOR(i,s,d) for(i=(s);i<=(d);++i)
char v[20000005];
long a[50005],b[50005],t[50005],p[50005];
long i,j,n,q,max,max2,x,maxelem,ok;
int main()
{
freopen ("secv.in","r",stdin);
freopen ("secv.out","w",stdout);
scanf("%ld",&n);
scanf("%ld",&a[1]);p[1]=a[1];q=1;
FOR (i,2,n){
scanf("%ld",&a[i]);
FOR (j,1,q){
ok=1;
if(p[j]==a[i]) ok=0;
if (ok==1)p[++q]=a[i];
}
}
maxelem=q;q=0;
FOR (i,1,n){b[i]=1;p[i]=0;}
for(i=n-1;i>=1;--i){
for (j=i+1;j<=n;++j){
if (a[i]<a[j]&&b[j]+1>b[i]){
b[i]=b[j]+1;t[i]=j;
}
}
if (p[0]<b[i]){p[0]=b[i];q=0;p[++q]=i;}
else if(p[0]==b[i]){p[++q]=i;}
}
if(p[0]!=maxelem){
/*printf("%ld\n",p[0]);
FOR(i,1,n)printf("%ld ",a[i]);
printf("\n");
FOR(i,1,n)printf("%ld ",b[i]);
printf("\n");
FOR(i,1,n)printf("%ld ",t[i]);
printf("\n\n");
printf("%ld\n\n",p[0]);*/
max=50001;
FOR (j,1,q){
i=p[j];
while(t[i]!=0){/*printf("%ld ",a[i]);*/i=t[i];}
/*printf("\n%ld %ld\n%ld\n\n",p[j],i,i-p[j]+1);*/
if(max>i-p[j]+1)max=i-p[j]+1;
}
printf("%ld\n",max);}
else printf("-1\n");
return 0;
}