#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; }