import java.io.BufferedInputStream;
import java.util.Scanner;
public class Main {
static int N = 100010;
static int[] d = new int[N];
static int n;
static boolean check(){
for(int i = 0;i < n;i ++)
if(d[i] != 0)
return false;
return true;
}
//查找当前最小值的下表
static int find_idx(){
int min_idx = -1;
int min = 100010;
for(int i = 0;i < n;i ++)
if(d[i] != 0 && d[i] < min){
min = d[i];
min_idx = i;
}
return min_idx;
}
// 找到最小值的左边
static int find_l(int idx){
int ans = 0;
for(int i = 0;i <= idx;i ++){
if(d[i] == 0)
ans = i + 1;
}
return ans;
}
//找到最小值右边的那个数
static int find_r(int idx){
int ans = n - 1;
for(int i = idx;i < n;i ++){
if(d[i] == 0){
ans = i - 1;
break;
}
}
return ans;
}
static void solve(int l,int r){
// 将区间内所有数减1
for(int i = l;i <= r;i ++)
d[i] --;
}
public static void main(String[] args){
Scanner sc = new Scanner(new BufferedInputStream(System.in));
n = sc.nextInt();
for(int i = 0;i < n;i ++)
d[i] = sc.nextInt();
int ans = 0;
while(!check()){
int idx = find_idx();
int l = find_l(idx);
int r = find_r(idx);
solve(l,r);
ans ++;
}
System.out.println(ans);
}
}