#include<bits/stdc++.h>
using namespace std;
#define IOS ios_base::sync_with_stdio(false);cin.tie(nullptr)
#define INF 0x7fffffff
#define inf 0x3f3f3f3f
#define PII pair<int,int>
#define endl '\n'
#define int long long
#define double long double
#define mod 998244353
int read() {char act = 0;int f = 1, x= 0;while (act = getchar(), act < '0' && act != '-');if (act == '-') f = -1, act = getchar();x = act - '0';while (act = getchar(), act >= '0') x = x * 10 + act - '0';return x * f;}
void solve(){
    int n;
    while(cin >> n){
        int tmp;
        vector<int> v;
        for (int i = 0; i < n; ++i){
            cin >>tmp;
            v.push_back(tmp);
        }
        // 最长递增子序列
        if (v.empty()) return;
        vector<int> dp1(n, 0);
        for (int i = 0; i < n; ++i){
            dp1[i] = 1;
            for(int j = 0; j <  i ; ++j){
                if (v[i] > v[j]){
                    dp1[i] = max(dp1[i], dp1[j]+1);
                }
            }
        }
        // 最长递减子序列
        vector<int> dp2(n, 0);
        for (int i = n - 1; i >= 0; --i){
            dp2[i] = 1;
            for (int j = n -1; j > i; --j){
                if (v[i] > v[j]){
                    dp2[i] = max(dp2[i], dp2[j]+1);
                }
            }
        }
        int maxLength = 0;
        for (int  i = 0; i < n; ++i){
            if (maxLength < dp1[i] + dp2[i] - 1){
                maxLength = dp1[i] + dp2[i] - 1;
            }
        }
        cout << n - maxLength << endl;
    }
}
signed main()
{
    IOS; 
    int t=1;
    //cin>>t;
    while(t--){
        solve();
    }

    return 0;
}