import Data.Maybe (fromMaybe)

main = interact $ unlines.map (readNumLine.concatMap (toBin code_charTable)).lines

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 char_codeTable of
                 Just c -> c:readNumLine line
                 Nothing -> rnl (acc++[head line]) $ tail line


code_charTable = [('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")]
char_codeTable = [("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')]