import           Control.Monad

main :: IO ()
main = do
  s <- getLine
  let ns = getInts s
  putStrLn . f s $ solve ns

getInts = map ((subtract $ fromEnum '0') . fromEnum)

f (c:cs) os = (c:(concat $ zipWith (\a b -> (a:[b])) os cs)) ++ "=7"

solve (n:ns) = case go of
                 0 -> "+++"
                 1 -> "++-"
                 2 -> "+-+"
                 3 -> "+--"
                 4 -> "-++"
                 5 -> "-+-"
                 6 -> "--+"
                 7 -> "---"
                 _ -> undefined
  where
    go = let ops = replicateM 3 [(+), (-)]
             xs :: [[Int -> Int]]
             xs = map (zipWith (\n o -> \m -> o m n) ns) ops
             f :: [Int -> Int] -> Int
             f = foldr (\a b -> a b) n
         in fst . head $ filter (\(_, n) -> n == 7) (zip [0..7] (map f xs))

