import Data.Maybe (fromMaybe)
import System.IO (isEOF)
import Data.List

main = do
    eof <- isEOF
    if eof then return ()
           else getLine >>= putStrLn.readNumLine' codeCharTable.concatMap (toBin charCodeTable) >> main

toBin :: [(Char,String)] -> Char -> String
toBin list char = fromMaybe "" (lookup char list)
readNumLine :: String -> String
readNumLine (x:xs) = rnl [x] xs

rnl _   []   = []
rnl acc line = case lookup acc codeCharTable of
                 Just c -> c:readNumLine line
                 Nothing -> rnl (head line: acc) $ tail line

readNumLine' _      []  = []
readNumLine' []     _   = []
readNumLine' (t:ts) str = if isPrefixOf (fst t) str then snd t : (readNumLine' codeCharTable $ drop (length $ fst t) str)
                                                    else readNumLine' ts str



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')]