//使用LIS的O(nlogn)算法
//此题就是一个LDS+LIS,然后用n-他们的和。
//LDS自己就按照LIS的逆序去写了,挺简单的
#include<iostream>
#include<cmath>#include<cstring>
#include<cstdio>
#include<algorithm>
#include<string>
#include<stack>
#include<queue>
#include<map>
#define PI acos(-1.0)
typedef long long LL;
const int MAX=0xfffffff;
using namespace std;
const int mx=1010;
int binary_search(double s[],double digit,int length)
{
int left=0,right=length;
while(right!=left)
{
int mid=(right+left)/2;
if(digit==s[mid]) return mid;
else if (digit<s[mid]) right=mid;
else left=mid+1;
}
return left;
}
int main( )
{
//freopen("1.txt","r",stdin);
int n;
while(scanf("%d",&n)!=EOF)
{
double a[mx];
int maxx=-MAX;
for(int i=1;i<=n;i++) scanf("%lf",&a[i]);
for(int m=1;m<=n;m++)
{
double s[mx];
s[0]=-1;
int lenLIS=1;
for(int i=1;i<=m;i++)
{
s[lenLIS]=MAX;
int j=binary_search(s,a[i],lenLIS);
if(j==lenLIS) lenLIS++;
s[j]=a[i];
}
lenLIS--;
s[0]=-1;
int lenLDS=1;
for(int i=n;i>m;i--)
{
s[lenLDS]=MAX;
int j=binary_search(s,a[i],lenLDS);
if(j==lenLDS) lenLDS++;
s[j]=a[i];
}
lenLDS--;
maxx=max(maxx,lenLIS+lenLDS);
}
printf("%d\n",n-maxx);
}
return 0;
}