#include<iostream>
#include<cstdio>
using namespace std;
int a[100005],m=0,n;
bool b[1000000009];
int youjixiao(int l,int r)
{
for(int i=l;i<=r;i++)
{
b[a[i]]=0;
if(i==l || i==r)
continue;
else
{
if(a[i-1]>a[i]&&a[i+1]>a[i])
return 1;
}
}
return 0;
}
void add(int l,int r)
{
if(!youjixiao(l,r))
{
for(int i=l;i<=r;i++)
{
if(b[a[i]]==0)
{
m++;
b[a[i]]=1;
}
}
return ;
}
if(l>r)
return ;
int minn=1000000001;
for(int i=l;i<=r;i++)
{
minn=min(a[i],minn);
}
if(minn!=0)
m++;
int k=l-1;
for(int i=l;i<=r;i++)
{
a[i]-=minn;
if(a[i]==0)
{
if(k+1<=i-1)
add(k+1,i-1);
k=i;
}
if(i==r&&a[i]!=0)
add(k+1,i);
}
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(a[i]==a[i-1])
n--,i--;
}
add(1,n);
printf("%d",m);
return 0;
}