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