
"""

https://atcoder.jp/contests/arc066/tasks/arc066_c

最終的な式における寄与を考える
-はどういう効果を持っている？

愚直な方法としてdpがある
dp[i][mnum] = i番目まで見て、-がmnum個重なってる状態での最大値
→ O(N^2)
じつは簡単にできる・保持しておくべき(答えになる)状態はもっと少ないのでは？
→これ、割と濃厚…か？

-の効果は、それ以降の寄与を反転させる
なるべく必要のない(無駄な)ところでは戻さない方が最適に近づく
現状 - で、足すやつを寄与+にしたい! → 戻す
現状 + で、足すやつを寄与-にしたい！→そんな場合はない
－直後のやつを寄与+にしたい！→ 戻せる+なら直前で-に戻せばいい

お？？？
A-B+C-D+E+F-…とやっていく
一度マイナスのカッコに入ると決めたとする
A-(B+C-(D+E+F)-G-(H+I))
すると、次の-以降はすべて+の寄与にできる

あとは耳dp！
dp[i][state] = i番目まで見て,stateの時の最大値
state = 0 #かっこをつけないで計算するモード
state = 1 #全引きモード
state = 2 #全足しモード

"""

N = int(input())

A = input().split()

dp = [int(A[0]),float("-inf"),float("-inf")]

for i in range(N-1):

    op = A[i*2+1]
    a =  int(A[i*2+2])

    ndp = [float("inf")] * 3

    if op == "+":

        ndp[0] = dp[0] + a
        ndp[1] = dp[1] - a
        ndp[2] = dp[2] + a

    else:

        ndp[0] = dp[0] - a
        ndp[1] = dp[0] - a
        ndp[2] = max(dp[2]+a ,dp[1]+a)

    dp = ndp

print (max(dp))
        
