//#define _GLIBCXX_DEBUG
//#pragma GCC optimize("O3")
//#pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
#define int long long
#define endl '\n'
#define fast ios_base::sync_with_stdio(false);cout.tie(nullptr);cin.tie(nullptr);
using namespace std;
void Bogdan(){
    int n;
    cin>>n;
    int a[n];
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    vector<pair<int,int>>v;
    v.push_back({a[0],1});
    for(int i=0;i<n;i++){
        if(a[i]==a[i-1]){
            v[v.size()-1].second++;
        }
        else{
            v.push_back({a[i],1});
        }
    }
    reverse(v.begin(),v.end());
    int res=v[0].first*v[0].second;
    int k=v[0].second;
    for(int i=1;i<v.size();i++){
        res+=max((v[i].first-k)*v[i].second,0ll);
        k+=v[i].second;
    }
    cout<<res<<endl;
}
/*
*/
int32_t main(){
    fast;
    int t=1,n;
   // cin>>t;
    while(t--){
        Bogdan();
    }
}
