#include<iostream>
using namespace std;
//比较两个数的大小,返回较大的数
int max(int a,int b)
{
if(a >= b)
return a;
else
return b;
}
int main(){
int a[101];//用于存放学生身高
int dpa[101];//用于存放学生数从0到n,的最长递增子序列
int dpb[101];//用于存放学生数从n到0,的最长递增子序列
int n;//n各学生
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
//初始化dpa dpb
for(int i=0;i<n;i++){
dpa[i]=1;
dpb[i]=1;
}
//从左边开始,求以第i个人为终点的,最长升序子序列长度
for(int i=1;i<n;i++){
//遍历i以前的数
for(int j=0;j<i;j++){
//一旦 第i个人的身高比第j个人的身高高
if(a[i]>a[j]){
// dpa[j]:代表到第j个人的最长升序子序列,+1 代表再加上第i个人
dpa[i] = max(dpa[j]+1,dpa[i]);
}
}
}
//从右边开始,求以第i个人为终点的,最长升序子序列
for(int i=n - 1;i>=0;i--){
for(int j=n-1; j>i;j--){
if(a[i]>a[j])
dpb[i]=max(dpb[j]+1,dpb[i]);
}
}
int Max=0;
//求左边+右边 值最大的队列 则为 最长的合唱队型 人数
for(int i=0;i<n;i++){
Max=max(Max,dpa[i]+dpb[i]-1);
}
cout<<n-Max<<endl;
}
/**************************************************************
Problem: 1277
User: admin
Language: C++
Result: Accepted
Time:40 ms
Memory:2072 kb
****************************************************************/