#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 5010;
int n;
long long p[N];
long long get_sum(int l, int r){
/*
这里求的是a[l~r-1] = p[r-1]-p[l-1],而前缀和模板题上l、r的范围是 1<=l,r <= n,不是从0开始的。
本题是从0开始的,所以答案就是 p[r]-p[l],在模板的基础上都+1
*/
return p[r]-p[l];
}
int main()
{
cin >> n;
int x;
for(int i = 1; i <= n; i++){
cin >> x;
p[i] = p[i-1] + x; // 前缀和的目标是求 a[l~r]的和,而a[l~r] = p[r]-p[l-1] // 前缀和表达式
}
long long res = -1e18;
int rx, ry, rz;
for(int y = n, z= y; y>=0; y--){
for(int x = 0; x <= y; x++){
if(get_sum(y,n) < get_sum(z, n)) z = y;
auto t = p[n]-2*get_sum(x,y)-2*get_sum(z,n);
if(t>res){
res = t;
rx = x; ry = y; rz = z;
}
}
}
printf("%d %d %d\n", rx, ry, rz);
return 0;
}