#include <iostream>
#include <vector>
using namespace std;

int minP(vector<int> arr, int N) {
    vector<int> dp1(N, 1);
    vector<int> dp2(N, 1);
    for(int i = 1; i < N; i++){
        for(int j = 0; j < i; j++){
            if(arr[j] < arr[i]){
                dp1[i] = max(dp1[j]+1, dp1[i]);
            }
        }
    }
    for(int i = N - 2; i >= 0; i --){
        for(int j = N - 1; j > i; j--){
            if(arr[j] < arr[i]){
                dp2[i] = max(dp2[j]+1, dp2[i]);
            }
        }
    }

    int max = 0;
    for(int i = 0; i < N; i++){
        max = max > (dp1[i] + dp2[i] - 1) ? max : (dp1[i] + dp2[i] - 1);
    }

    return N - max;
}

int main() {
    int N;
    cin >> N;
    vector<int> arr(N, 0);

    for (int i = 0; i < N; i++) cin >> arr[i];

    cout << minP(arr, N) << endl;
    return 0;
}