#include <bits/stdc++.h>

using namespace std;
long long m[300000],n;
//pair<long long ,long long> tr[1000000];

int main()
{
    cin>>n;
    for (int i=1; i<=n; i++)
    {
        cin>>m[i];
    }
    long long otv=0;
    int f=1;
    if (n==1)
    {
        cout<<m[1];
        return 0;
    }
    if (n==2)
    {
        cout<<max(m[1],m[2]);
        return 0;
    }
    while (f==1)
    {
        int k=0;

        long long  t=1,mi=min(m[1],m[2]),ma=max(m[1],m[2]),pred;
        if (m[1]>m[2])
            pred=2;
        else
            pred=1;
        for (int i=3; i<=n; i++)
        {
            if (m[i]!=m[i-1])
                k=1;
            if (i==n)
            {
                if (pred==1 || !((m[i]>m[i-1] && pred==2)))
                {

                    ma=max(ma,m[i]);
                    mi=min(m[i],mi);
                    for (int j=t; j<=i; j++)
                    {
                        m[j]=mi;
                    }
                    otv+=ma-mi;
                }
                else
                {
                    //cout<<"kke"<<endl;
                    for (int j=t; j<i; j++)
                    {
                        m[j]=mi;
                    }
                    //cout<<mi<<endl;
                    otv+=m[n]-mi;
                    m[n]=mi;
                    otv+=ma-mi;
                }
            }
            else
            {

                if (pred==0)
                {
                    if (m[i]>=m[i-1])
                        pred=1;
                    else
                        pred=2;
                    ma=max(ma,m[i]);
                    mi=min(mi,m[i]);
                }
                else
                {
                    if (m[i]!=m[i-1])
                    {
                        if (m[i]>m[i-1] && pred==1)
                        {
                            ma=max(ma,m[i]);
                        }
                        else
                        {
                            if (m[i]>m[i-1] && pred==2)
                            {
                                for (int j=t; j<i; j++)
                                {
                                    m[j]=mi;
                                }
                                otv+=ma-mi;

                                ma=m[i];
                                mi=m[i-1];
                                pred=1;
                            }
                            else
                            {

                                mi=min(mi,m[i]);
                                pred=2;

                            }
                        }
                    }
                }
            }
        }
        /*for (int i=1; i<=n; i++)
        {
            cout<<m[i]<<" ";
        }
        cout<<otv<<endl;*/
        if (k==0)
        {
            otv+=m[1];
            f=0;
        }
    }
    cout<<otv<<endl;
}
