import Control.Applicative ((<$>), (<|>))
import Data.List (foldl', tails, inits)
import Data.Either (rights)

import Text.Parsec (parse, many, many1, eof)
import Text.Parsec.String (Parser)
import Text.Parsec.Char (digit, char)

main :: IO ()
main = solve <$> getLine >>= print

solve :: String -> Int
solve s = maximum . rights . map (parse expr "") $ zipWith (++) (tails s) (inits s)

expr :: Parser Int
expr = do
  x <- num
  fs <- many (plus <|> minus)
  eof
  return $ foldl' (\a f -> f a) x fs

num :: Parser Int
num = read <$> many1 digit

plus :: Parser (Int -> Int)
plus = do
  char '+'
  x <- num
  return (+x)

minus :: Parser (Int -> Int)
minus = do
  char '-'
  x <- num
  return (subtract x)