from itertools import *
from bisect import *
from math import *
from collections import *
from heapq import *
from random import *
from decimal import *
import numpy as np
import sys

sys.setrecursionlimit(10 ** 6)
int1 = lambda x: int(x) - 1
p2D = lambda x: print(*x, sep="\n")
def II(): return int(sys.stdin.readline())
def MI(): return map(int, sys.stdin.readline().split())
def MI1(): return map(int1, sys.stdin.readline().split())
def MF(): return map(float, sys.stdin.readline().split())
def LI(): return list(map(int, sys.stdin.readline().split()))
def LI1(): return list(map(int1, sys.stdin.readline().split()))
def LF(): return list(map(float, sys.stdin.readline().split()))
def LLI(rows_number): return [LI() for _ in range(rows_number)]
dij = [(1, 0), (0, 1), (-1, 0), (0, -1)]

def main():
    def cal(s):
        aa=[[],[]]
        a=""
        pm=0
        for c in s:
            if c=="+" or c=="-":
                aa[pm].append(int(a))
                pm=(c=="-")*1
                a=""
            else:
                a+=c
        aa[pm].append(int(a))
        return sum(aa[0])-sum(aa[1])

    s=input()
    n=len(s)
    s*=2
    ans=-10**10
    for i in range(n):
        if s[i].isdigit() and s[i+n-1].isdigit():
            ans=max(ans,cal(s[i:i+n]))
    print(ans)

main()