#include <iostream>
using namespace std;
void longestIncrease(int a[],int l,int r){
int n=r-l+1;
if(n==0) return ;
int d[n];int num=1;
for(int i=l;i<r+1;i++){
d[i]=1;
for(int j=l;j<i;j++){
if(a[j]<a[i]) {
d[i]=max(d[i],d[j]+1);
}
}
num=max(num,d[i]);
}
for(int i=l;i<r+1;i++) a[i]=d[i];
}
void longestDecrease(int a[],int l,int r){
int n=r-l+1;
int d[n];int num=1;
for(int i=r;i>l-1;i--){
d[i]=1;
for(int j=r;j>i;j--){
if(a[j]<a[i]) d[i]=max(d[i],d[j]+1);
}
num=max(num,d[i]);
}
for(int i=l;i<r+1;i++) a[i]=d[i];
}
int main() {
int n;
while(cin>>n){
int a[n];
int dp1[n];
int dp2[n];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
dp1[i]=a[i];
dp2[i]=a[i];
}
longestIncrease(dp1,0,n-1);
longestDecrease(dp2,0,n-1);
int maxh=1;
for(int i=0;i<n;i++){
if((dp1[i]+dp2[i])>maxh) maxh=dp1[i]+dp2[i];
}
cout<<(n-maxh+1)<<endl;
}
}