///Promit ca voi trimite in curand o sursa decenta!
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 5005;
const int INF = 1e9;
int nums;
int v[NMAX],
aux[NMAX],
vals[NMAX],
lsta[NMAX],
lens[NMAX];
bool ex[NMAX];
inline void init_aux(int n) {
ex[0] = true;
sort(aux+1, aux+n+1);
for(int i=1; i<=n; ++i)
if(aux[i]!=aux[i-1])
vals[++nums] = aux[i];
}
int main(void) {
FILE *fi = fopen("secv.in","r");
FILE *fo = fopen("secv.out","w");
int n;
int i, t, ans;
ans = INF;
fscanf(fi,"%d",&n);
for(i=1; i<=n; ++i) {
fscanf(fi,"%d",&v[i]);
aux[i] = v[i];
}
init_aux(n);
for(i=1; i<=nums; ++i) {
lens[i] = INF;
lsta[i] = 0;
}
for(i=1; i<=n; ++i) {
t = v[i];
lsta[t] = i;
ex[t] = ex[t] || ex[t-1];
if(ex[t-1]) {
if(t==vals[1])
lens[t] = 0;
else
lens[t] = lens[t-1] + i - lsta[t-1];
if(t==nums && lens[t]<ans)
ans = lens[t];
}
}
fprintf(fo,"%d\n",ans+1);
fclose(fi);
fclose(fo);
return 0;
}