#include<bits/stdc++.h>
#define For(i,l,r) for(int i=l;i<=r;i++)
#define Rof(i,l,r) for(int i=l;i>=r;i--)
using namespace std;
#define P pair<int,int>
#define int long long
inline int input(){int x;return cin>>x,x;}
const int inf = 0x3f3f3f3f3f3f3f3f;
const int N = 5005;
int n,ans,a[N];
inline int Solve(int l,int r,int h){
if(l==r) return a[l]!=h;
if(l>r) return 0;
int minn=inf, pos = 0;
For(i,l,r) if(minn > a[i]) minn = a[i], pos = i;
int res = min(Solve(l,pos-1,minn)+Solve(pos+1,r,minn)+a[pos]-h, r-l+1);
return res;
}
signed main(){
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
string str("paint");
freopen((str+".in").c_str(),"r",stdin);
freopen((str+".out").c_str(),"w",stdout);
cin>>n;For(i,1,n) a[i]=input();
int Tim = clock();
cout<<Solve(1,n,0)<<'\n';
return cerr<<"TIME:"<<(clock()-Tim)/1000.,0;
}