#include<iostream>
using namespace std;
int min(int* data, int left, int right);
void clear(int* data, int min, int left, int right);
int iszero(int* data, int num);
int main(void) {
int n;
int result = 0;
int d[100000];
cin >> n;
for (int i = 0; i < n; i++) {
cin >> d[i];
}
while (!iszero(d, n)) {
int left = 0;
int right = 0;
while (left < n && right < n) {
left = right;
while (d[left] == 0) {
++left;
if (left == n)
break;
}
right = left;
while (d[right] != 0) {
++right;
if (right == n)
break;
}
int temp = min(d, left, right);
if (temp != 0) {
++result;
}
clear(d, temp, left, right);
}
}
cout << result << endl;
return 0;
}
int min(int* data, int left, int right){
int min = data[left];
for (int i = left + 1; i < right; ++i) {
if (min > data[i]) {
min = data[i];
}
}
return min;
}
void clear(int* data, int min, int left, int right) {
for (int i = left; i < right; ++i) {
data[i] -= min;
}
}
int iszero(int* data, int num) {
for (int i = 0; i < num; i++) {
if (data[i] != 0) {
return 0;
}
}
return 1;
}