#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
	int k;
	while (cin >> k) {
		if (k == 0)break;
		vector<int> a(k);
		for (int i = 0; i < k; i++)cin >> a[i];
		vector<int> dp(k, 0);
		int res = 0;
		int t = 0, w = k - 1,temp=0;
		bool mark = true;
		dp = a;
		for (int i = 1; i < k; i++) {
			dp[i] = max(dp[i], dp[i - 1] + a[i]);
			//	res=max(res,dp[i]);
			if (res < dp[i]) {
				w = i;
				res = dp[i];	
			}
			if (a[i] == 0&&mark) {
				temp = i;
				mark = false;
			}
			//cout << dp[i] << " ";
		}
		//回溯
		if (res > 0) {
			for (int i = w; i >= 0; i--) {
				if (dp[i] < 0) {
					t = i + 1;
					//cout << t << endl;
					break;
				}
			}
		}
		else if (mark == false) {
			t = temp;
			w = temp;
		}

		if (a.size() == 1)res = a[0] > 0 ? a[0] : 0;
		//if (t > k - 1)t = 0;
		cout << res << " " << a[t] << " " << a[w] << endl;
	}
}