#include<iostream>
using namespace std;
int n;
long long a[1000005],dp1[1000005],dp2[1000005],Max=-(1ll<<62);
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
for(int i=1;i<=n;i++)dp1[i]=max(dp1[i-1]+a[i],a[i]);
for(int i=2;i<=n;i++)dp1[i]=max(dp1[i],dp1[i-1]);
for(int i=n;i>=1;i--)dp2[i]=max(dp2[i+1]+a[i],a[i]);
for(int i=n-1;i>=1;i--)dp2[i]=max(dp2[i+1],dp2[i]);
for(int i=2;i<=n-1;i++)Max=max(Max,dp1[i-1]+dp2[i+1]);
printf("%lld",Max);
return 0;
}