module Main where
import Control.Monad
import Control.Applicative
import Data.Maybe
import Data.List
import qualified Text.Printf
import qualified Data.ByteString.Char8 as BC
import qualified Data.ByteString as BC

------------------------------------------

solve :: [Int] -> Maybe String
solve (x:xs) = f (show x) x xs
  where
    f msg v [] = guard (v == 7) >> return (reverse ("7=" ++ msg))
    f msg v (x:xs) = f (show x ++ "+" ++ msg) (v+x) xs <|> f (show x ++ "-" ++ msg) (v-x) xs

main :: IO ()
main = do
  s <- (map read <$> map (:[]) <$> getLine) :: IO [Int]
  let Just msg = solve s
  putStrLn msg

------------------------------------------

{- Int input -}

parseInt :: BC.ByteString -> Int
parseInt = fst . fromJust . BC.readInt

parseInts :: BC.ByteString -> [Int]
parseInts = map parseInt <$> BC.words

readInt :: IO Int
readInt = parseInt <$> BC.getLine

readInts :: IO [Int]
readInts = parseInts <$> BC.getLine

{- Double Formatting -}

doubleFmt :: Double -> String
doubleFmt = Text.Printf.printf "%.12f"
