#include <iostream>
#include <map>
#include <vector>
#include <set>
#include <deque>
#include <stack>
#include <queue>
#include <algorithm>
#include <cmath>
#include <climits>
#include <ctime>
#include <iomanip>
#include <string>

using namespace std;
using ll=long long;

void solve()
{
    
}
    
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(nullptr);
    cout.tie(nullptr);
    int n;
    cin>>n;
    int a[n];
    deque<pair<int,int>> d;
    cin>>a[0];
    int k=1;
    for(int i=1;i<n;i++)
    {
        cin>>a[i];
        if(a[i]!=a[i-1])
        {
            d.push_back({a[i-1],k});
            k=1;
        }
        else
        {
            k++;
        }
    }
    d.push_back({a[n-1],k});
    int ans=0;
    k=0;
    while(!d.empty())
    {
        auto v=d.back();
        d.pop_back();
        ans+=((v.first-k)*v.second);
        k+=v.second;
        if(!d.empty() && d.front().first<=k)
        {
            d.pop_front();
        }
    }
    cout<<ans<<"\n";
}