import Control.Applicative ((<$>), (<*>))
import Control.Monad
import Data.List

main :: IO ()
main = do
  solve <$> getl toInt >>= putStrLn

solve :: Int -> String
solve n = dropWhile (== '0') . map f . head . filter ((== n) . sum . zipWith (*) [27,9,3,1]) $ ls
  where
    ls = [[i,j,k,l]|i <- [0,1], j <- [0,(-1),1], k <- [0,(-1),1], l <- [0,(-1),1]]
    f :: Int -> Char
    f 0 = '0'
    f 1 = '+'
    f (-1) = '-'
    
toInt :: String -> Int
toInt = read

getl :: (String -> a) -> IO a
getl f = f <$> getLine