#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
ifstream fi("secv.in");
ofstream fo("secv.out");
#define nmax 5005
int S[nmax],s[nmax],V[nmax];
int main(void)
{
int n;
fi>>n;
for (int i=1;i<=n;++i) fi>>s[i],S[i]=s[i];
sort(s+1,s+n+1);
int N=0;
for (int i=1;i<=n;) {V[++N]=s[i];for (;s[i]==s[i+1] && i<n;++i);++i;}
int Min=nmax*2;
int a,M,j;
for (int i=1;i<=n;++i)
if (S[i]==V[1])
{
for (j=1,a=i;j<=N && a<=n;++j,++a)
for (;S[a]!=V[j] && a<=n;++a);
if (j>N && a<=n+1 && a-i<Min) Min=a-i;
}
if (Min==2*nmax) Min=-1;
fo<<Min<<"\n";
}