#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=1e6+5;
int n,m,a[maxn],dp[maxn][20];
namespace ST{
inline void init(){
for(int i=1;i<=n;++i)
dp[i][0]=a[i];
for(int j=1;(1<<j)<=n;++j)
for(int i=1;i+(1<<j)-1<=n;++i)
dp[i][j]=max(dp[i][j-1],dp[i+(1<<j-1)][j-1]);
}
inline int ask(int l,int r){
int k=log2(r-l+1);
return max(dp[l][k],dp[r-(1<<k)+1][k]);
}
}
using namespace ST;
signed main(){
scanf("%lld",&n);
for(int i=1;i<=n;++i)
scanf("%lld",&a[i]);
init();
int ans=-1e12;
for(int i=1;i<n;++i)
ans=max(ans,ask(i+1,n)-a[i]);
printf("%lld\n",ans);
return 0;
}