#include <bits/stdc++.h>
using namespace std;
long long n, i, j;
long long a[5005];
long long mini[5005][5005];
long long rez(int l, int r, long long val) {
  if (l > r) return 0;
  long long ans = r - l + 1;
  long long p = mini[l][r];
  long long nans = rez(l, p - 1, a[p]) + rez(p + 1, r, a[p]) + a[p] - val;
  ans = min(ans, nans);
  return ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cin >> n;
  for (i = 1; i <= n; i++) cin >> a[i];
  for (i = 1; i <= n; i++) {
    mini[i][i] = i;
    for (j = i + 1; j <= n; j++) {
      if (a[mini[i][j - 1]] < a[j])
        mini[i][j] = mini[i][j - 1];
      else
        mini[i][j] = j;
    }
  }
  cout << rez(1, n, 0);
  return 0;
}
