import Control.Applicative
import Control.Monad.State
import Data.Maybe (fromMaybe,isNothing)
import Data.List

main = interact $ unlines.map decode.lines

decode :: String -> String
decode = fromMaybe "".(\x -> toBinary x >>= toAlphabet)

toBinary :: String -> Maybe String
toBinary str = concat <$>  evalStateT (sequence $ replicate n toBin) str
    where n = length str
toBin :: StateT String Maybe String
toBin = do
    rest <- get
    if null rest then lift Nothing
                 else do
                     let (x:xs) = rest
                     case lookup x charCodeTable of
                       Nothing -> lift Nothing
                       Just b  -> do
                           put xs
                           return b

toAlphabet :: String -> Maybe String
toAlphabet = evalStateT (toAlpha [])
toAlpha :: String -> StateT String Maybe String
toAlpha a = do
    c <- testCode 0
    rest <- get
    if null rest then return $ reverse a
                 else toAlpha (c:a)

testCode :: Int -> StateT String Maybe Char
testCode n = do
    rest <- get
    if length rest < n then put (drop n rest) >> return '\n'
                       else do
                           let code = take n rest
                           case lookup code codeCharTable of
                             Nothing -> testCode (n+1)
                             Just c  -> do
                                 put $ drop n rest
                                 return c

charCodeTable =  [('A',"00000"),('B',"00001"),('C',"00010"),('D',"00011")
                 ,('E',"00100"),('F',"00101"),('G',"00110"),('H',"00111")
                 ,('I',"01000"),('J',"01001"),('K',"01010"),('L',"01011")
                 ,('M',"01100"),('N',"01101"),('O',"01110"),('P',"01111")
                 ,('Q',"10000"),('R',"10001"),('S',"10010"),('T',"10011")
                 ,('U',"10100"),('V',"10101"),('W',"10110"),('X',"10111")
                 ,('Y',"11000"),('Z',"11001"),(' ',"11010"),('.',"11011")
                 ,(',',"11100"),('-',"11101"),('\'',"11110"),('?',"11111")]

codeCharTable = [("101",' '),("000000",'\''),("000011",','),("10010001",'-')
                 ,("010001",'.'),("000001",'?'),("100101",'A'),("10011010",'B')
                 ,("0101",'C'),("0001",'D'),("110",'E'),("01001",'F'),("10011011",'G')
                 ,("010000",'H'),("0111",'I'),("10011000",'J'),("0110",'K'),("00100",'L')
                 ,("10011001",'M'),("10011110",'N'),("00101",'O'),("111",'P')
                 ,("10011111",'Q'),("1000",'R'),("00110",'S'),("00111",'T'),("10011100",'U')
                 ,("10011101",'V'),("000010",'W'),("10010010",'X'),("10010011",'Y'),("10010000",'Z')]