#include <iostream>
#include <utility>
#include <vector>
using namespace std;
int In[4000];
int De[4000];
int InCr(vector<int> h, int index) {
int max = 0;
for (int i = 0; i < index; ++i) {
if (h[i] < h[index]) {
if(In[i] == -1)
In[i] = InCr(h, i);
int temp = In[i] + 1;
if (temp > max)
max = temp;
}
}
return max;
}
int DeCr(vector<int> h, int index) {
int max = 0;
for (int i = index + 1; i < h.size(); ++i) {
if (h[i] < h[index]) {
if(De[i] == -1)
De[i] = DeCr(h, i);
int temp = De[i] + 1;
if (temp > max)
max = temp;
}
}
return max;
}
int main() {
int n;
cin >> n;
for(int i = 0; i < 4000; ++i)
In[i] = -1, De[i] = -1;
vector<int> h;
for (int i = 0; i < n; ++i) {
int temp;
cin >> temp;
h.push_back(temp);
}
int min = 4000;
for (int i = 0; i < n; ++i) {
int left = InCr(h, i);
int right = DeCr(h, i);
int length = left + right + 1;
int Out = n - length;
if (Out < min)
min = Out;
}
cout<<min;
}
// 64 位输出请用 printf("%lld")