import Control.Applicative ((<$>), (*>)) import Text.Parsec import Text.Parsec.String (Parser) main :: IO () main = solve <$> getLine >>= print solve :: String -> Int solve = either (const 0) id . parse expr "" num :: Parser Int num = do f <- (char '+' *> return id) <|> (char '-' *> return negate) <|> return id d <- many1 digit >>= return . read return $ f d op :: Parser (Int -> Int -> Int) op = char '+' *> return (-) <|> char '-' *> return (+) expr :: Parser Int expr = do x <- num f <- op y <- num return $ f x y