#include <bits/stdc++.h>
using namespace std;
int p[5005], n, xsd;
int dp(int l, int r, int h) {
  if (l >= r) return 0;
  int aux = l;
  for (int i = l; i < r; i++) {
    if (p[aux] > p[i]) aux = i;
  }
  return min(r - l, p[aux] - h + dp(l, aux, p[aux]) + dp(aux + 1, r, p[aux]));
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> p[i];
  }
  cout << dp(0, n + 1, 0) << endl;
  return 0;
}
