N = int(input()) A = map(int, input().split()) A0 = next(A) dp_min = dp_max = A0 def div_inf(x, a, inf): return x // a if a else inf INF = 10 ** 18 for a in A: dp_min, dp_max = ( min( dp_min + a, dp_max + a, dp_min - a, dp_max - a, dp_min * a, dp_max * a, div_inf(dp_min, a, INF), div_inf(dp_max, a, INF) ), max( dp_min + a, dp_max + a, dp_min - a, dp_max - a, dp_min * a, dp_max * a, div_inf(dp_min, a, -INF), div_inf(dp_max, a, -INF) )) print(dp_max)