#include<fstream>
#include<algorithm>
using namespace std;
int a[5003],b[5003];
int p[5003],v[5003],l[5003];
int main(){
ifstream cin("secv.in");
ofstream cout("secv.out");
int N,i,j,K;
int LMIN = 5003, VMAX;
cin>>N;
if(N == 0)
{
cout<<"-1\n";
return 0;
}
if(N == 1)
{
cout<<"1\n";
return 0;
}
for(i=1;i<=N;++i)
{
cin>>a[i];
a[i] += 2;
b[i]=a[i];
}
sort(b+1,b+N+1);
K = 1;
for(i=1;i<=N;++i)
{
for(j=1;j<=N;++j)
if(a[j] == b[i])
a[j] = K;
++K;
while(i<N && b[i] == b[i+1]) ++ i;
}
VMAX = K-1;
for(i=1;i<=N;++i)
{
if(a[i] > 1)
{
if(p[a[i]-1] != 0 && v[a[i]-1] == a[i]-1)
{
v[a[i]] = a[i];
l[a[i]] = l[a[i]-1] + (i - p[a[i]-1]);
p[a[i]] = i;
}
}
else
{
v[1] = 1;
l[1] = 1;
p[1] = i;
}
if(a[i] == VMAX && v[VMAX] == VMAX) LMIN = min(LMIN, l[VMAX]);
}
if(LMIN == 5003) cout<<"-1\n";
else cout<<LMIN<<'\n';
return 0;
}