#include <bits/stdc++.h>
using namespace std;
#define STOP fout.close(); exit(EXIT_SUCCESS);
ifstream fin("secv.in");
ofstream fout("secv.out");
///***********************
const int NMAX = 5e3 + 3;
int n, v[NMAX], uniq[NMAX], k, ans = NMAX;
void read() {
fin >> n;
for (int i = 1; i <= n; i++) {
fin >> v[i];
uniq[i] = v[i];
}
}
void makeUniq() {
k = 1;
for (int i = 2; i <= n; i++)
if (uniq[i] != uniq[i - 1])
uniq[++k] = uniq[i];
}
void solve() {
for (int i = 1; i <= n; i++) {
for (int j = i, p = 1; j <= n; j++) {
if (uniq[p] == v[j])
p++;
if (p == k + 1) {
ans = min(ans, j - i + 1);
break;
}
}
}
}
int main() {
read();
sort(uniq + 1, uniq + n + 1);
makeUniq();
solve();
fout << ((ans == NMAX) ? -1 : ans) << endl;
STOP
}