#include<iostream>
#include<cstring>
using namespace std;
const int maxn = 1e3 + 15;
int a[maxn],dp[maxn],n,ans;
int test1(int x){
int sum = 0;
memset(dp,0,sizeof(dp));
for(int i = 1;i <= x;i++){
dp[i] = 1;
for(int j = 1;j <= i - 1;j++){
if(a[j] < a[i] && dp[j] + 1 > dp[i]) dp[i] = dp[j] + 1;
}
}
for(int i = 1;i <= x;i++) sum = max(sum,dp[i]);
return sum;
}
int test2(int x){
int sum = 0;
memset(dp,0,sizeof(dp));
for(int i = x;i <= n;i++){
dp[i] = 1;
for(int j = x;j <= i - 1;j++){
if(a[j] > a[i] && dp[j] + 1 > dp[i]) dp[i] = dp[j] + 1;
}
}
for(int i = x;i <= n;i++) sum = max(sum,dp[i]);
return sum;
}
int main(){
cin >> n;
for(int i = 1;i <= n;i++) cin >> a[i];
for(int i = 2;i <= n;i++){
ans = max(ans,test1(i) + test2(i) - 1);
}
cout << n - ans;
}