#include <iostream>
#define MAX(a,b) (((a)>(b))?(a):(b))

using namespace std;
typedef long long int lli;
int main(void){
	int n;
	lli a[5000];
	while(cin>>n,n){
		for(int i=0;i<n;i++)cin>>a[i];
		lli max=-2000000;
		lli sum=0;
		lli msum=0;
		bool isminus=false;
		int t=0;
		max=a[0];
		if(a[0]>=0) sum+=a[0];
		for(int t=1;t<n;t++){
			// cout<<"debug:"<<max<<" "<<sum<<" "<<msum<<endl;
			if(a[t]>=0){
				if(!isminus){ // ??£????????£
					sum+=a[t];
					max=MAX(sum,max);
				}
				else { // ???????????£
					isminus=false;
					if(sum+msum>=0){ // ????????????????¨?????????????????????´???
						max=MAX(sum,max);
						sum+=msum;
						sum+=a[t];
						msum=0;
					}else{ // ???????????£??§??????????????????????????´???
						max=MAX(sum,max);
						sum=0;
						sum+=a[t];
						msum=0;
					}
				}
			}else{
				if(isminus)msum+=a[t];
				else{
					isminus=true;
					msum+=a[t];
				}
			}
		}
		cout<<MAX(sum,max)<<endl;
	}
	return 0;
}