#include <bits/stdc++.h>
using namespace std;
const long long MaxN = 1e6 + 5;
long long n, a[MaxN], res=0;
stack<long long> st;
int main()
{
freopen("file.inp", "r", stdin);
freopen("file.ans", "w", stdout);
cin >> n;
for (long long i=1; i<=n; i++)
{
cin >> a[i];
vector<long long> v;
while(!st.empty() && a[i]>a[st.top()])
{
v.push_back(a[st.top()]);
st.pop();
}
v.push_back(a[i]);
for (long long j=0; j<v.size()-1; j++)
{
res+=v[j+1]-v[j];
}
st.push(i);
a[n+1]=max(a[n+1],a[i]);
}
vector<long long > v;
while(!st.empty()&&a[n+1]>a[st.top()])
{
v.push_back(a[st.top()]);
st.pop();
}
v.push_back(a[n+1]);
for (long long i=0; i<v.size()-1; i++) res+=v[i+1]-v[i];
cout << res;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGxvbmcgbG9uZyBNYXhOID0gMWU2ICsgNTsKbG9uZyBsb25nIG4sIGFbTWF4Tl0sIHJlcz0wOwpzdGFjazxsb25nIGxvbmc+IHN0OwppbnQgbWFpbigpCnsKICAgIGZyZW9wZW4oImZpbGUuaW5wIiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJmaWxlLmFucyIsICJ3Iiwgc3Rkb3V0KTsKICAgIGNpbiA+PiBuOwogICAgZm9yIChsb25nIGxvbmcgaT0xOyBpPD1uOyBpKyspCiAgICB7CiAgICAgICAgY2luID4+IGFbaV07CiAgICAgICAgdmVjdG9yPGxvbmcgbG9uZz4gdjsKICAgICAgICB3aGlsZSghc3QuZW1wdHkoKSAmJiBhW2ldPmFbc3QudG9wKCldKQogICAgICAgIHsKICAgICAgICAgICAgdi5wdXNoX2JhY2soYVtzdC50b3AoKV0pOwogICAgICAgICAgICBzdC5wb3AoKTsKICAgICAgICB9CiAgICAgICAgdi5wdXNoX2JhY2soYVtpXSk7CiAgICAgICAgZm9yIChsb25nIGxvbmcgaj0wOyBqPHYuc2l6ZSgpLTE7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIHJlcys9dltqKzFdLXZbal07CiAgICAgICAgfQogICAgICAgIHN0LnB1c2goaSk7CiAgICAgICAgICAgIGFbbisxXT1tYXgoYVtuKzFdLGFbaV0pOwogICAgfQogICAgdmVjdG9yPGxvbmcgbG9uZyA+IHY7CiAgICB3aGlsZSghc3QuZW1wdHkoKSYmYVtuKzFdPmFbc3QudG9wKCldKQogICAgewogICAgICAgIHYucHVzaF9iYWNrKGFbc3QudG9wKCldKTsKICAgICAgICBzdC5wb3AoKTsKICAgIH0KICAgIHYucHVzaF9iYWNrKGFbbisxXSk7CiAgICBmb3IgKGxvbmcgbG9uZyBpPTA7IGk8di5zaXplKCktMTsgaSsrKSByZXMrPXZbaSsxXS12W2ldOwogICAgY291dCA8PCByZXM7Cn0K