#include<cstdio>
int n,v[5003],b[5003],p[5003],m,k,l[5003],t=1,c[5003],d[5003],i,j,r,s;
int C(int x)
{int p=0,u=t,m;
m=(p+u)/2;
while(p<=u)
{if(v[l[m]]<x&&v[l[m+1]]>=x)
return m;
if(v[l[m+1]]<x)
p=m+1,m=(p+u)/2;
else
u=m-1,m=(p+u)/2;}
return t;}
int main()
{freopen("secv.in","r",stdin),freopen("secv.out","w",stdout);
scanf("%d",&n);
for(b[1]=l[1]=i=1;i<=n;i++)
scanf("%d",v+i);
for(i=2;i<=n;i++)
{r=C(v[i]),p[i]=l[r],b[i]=r+1,l[r+1]=i;
if(t<r+1)
t=r+1;}
for(m=r=0,i=1;i<=n;i++)
if(m<b[i])
m=b[i],r=i;
for(t=0,i=r;i;i=p[i])
c[m-t]=v[i],d[m-t]=i,t++;
for(r=-1,i=1;i<=m&&r==-1;i++)
{for(t=0,j=d[i];j<=d[m];j++)
for(k=1;k<=m;k++)
if(v[j]==c[k])
t++;
if(t==d[m]-d[i]+1)
{printf("%d",t);
return 0;}}
printf("-1");
return 0;}