#include <iostream>
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
#define fo(i,start,end) for(ll i=start;i<end;i++)

int Kadanes(vector<ll>&arr,ll start,ll end){
	int prevSum=0;
	int MaxSeen = -1e9;
	for(int i=start;i<=end;i++){
		int sum = max(prevSum+arr[i],arr[i]);
		prevSum = sum;
		MaxSeen = max(MaxSeen,sum);
	}
	return MaxSeen;
}

int main() {
	// your code goes here
	vector<ll>arr = {-10,-5,2,4,-15,-20,1,2};
	ll n = arr.size();
	//we need to apply Kadane's 2 time and find it 
	ll MaxSeen = -1e9;
	fo(i,0,n-1){
	ll result = Kadanes(arr,0,i) + Kadanes(arr,i+1,n-1); //inclusive of both starting and ending index
	MaxSeen = max(MaxSeen,result);
	}
	cout<<MaxSeen<<endl;
	return 0;
}