#include <bits/stdc++.h>
using namespace std;
int a[5005];
int solve(int l, int r, int val, int sz) {
  int i;
  bool f = false;
  if (val > a[l]) return 0;
  for (i = l; i <= r; i++) {
    if (a[i] - val + 1 <= sz) {
      f = true;
      break;
    }
  }
  if (!f) return sz;
  int ret = 1;
  int s, e;
  for (i = l; i <= r; i++) {
    if (a[i] > val) {
      s = i;
      e = i - 1;
      while (i <= r && a[i] > val) {
        e++;
        i++;
      }
      ret += solve(s, e, val + 1, (e - s + 1));
    }
  }
  return min(ret, sz);
}
int main() {
  int n, i;
  scanf("%d", &n);
  for (i = 0; i < n; i++) {
    scanf("%d", &a[i]);
  }
  printf("%d\n", solve(0, n - 1, 1, n));
  return 0;
}
