#include <bits/stdc++.h>
using namespace std;
int arr[100000],n,l,r,mid,maxx,ans;
bool check(int x){
for(int i=2;i<=n;i++){
if(arr[i]>arr[i-1]){
if(x>=arr[i]-arr[i-1] && x>=0){
x-=(arr[i]-arr[i-1]);
arr[i]=arr[i-1];
}else{
return false;
}
}
}
return true;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>arr[i];
maxx=max(maxx,arr[i]);
}
int r=maxx*4,l=0;
while(l<=r){
mid=(l+r)/2;
if(check(mid)){
ans=mid;
r=mid-1;
}else{
l=mid+1;
}
}
cout<<ans;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBhcnJbMTAwMDAwXSxuLGwscixtaWQsbWF4eCxhbnM7CmJvb2wgY2hlY2soaW50IHgpewogICAgZm9yKGludCBpPTI7aTw9bjtpKyspewogICAgICAgIGlmKGFycltpXT5hcnJbaS0xXSl7CiAgICAgICAgICAgIGlmKHg+PWFycltpXS1hcnJbaS0xXSAmJiB4Pj0wKXsKICAgICAgICAgICAgICAgIHgtPShhcnJbaV0tYXJyW2ktMV0pOwogICAgICAgICAgICAgICAgYXJyW2ldPWFycltpLTFdOwogICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiB0cnVlOwp9CmludCBtYWluKCl7CiAgICBjaW4+Pm47CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKyl7CiAgICAgICAgY2luPj5hcnJbaV07CiAgICAgICAgbWF4eD1tYXgobWF4eCxhcnJbaV0pOwogICAgfQoKICAgIGludCByPW1heHgqNCxsPTA7CiAgICB3aGlsZShsPD1yKXsKICAgICAgICBtaWQ9KGwrcikvMjsKICAgICAgICBpZihjaGVjayhtaWQpKXsKICAgICAgICAgICAgYW5zPW1pZDsKICAgICAgICAgICAgcj1taWQtMTsKICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgbD1taWQrMTsKICAgICAgICB9CiAgICB9CiAgICBjb3V0PDxhbnM7Cn0=