# -*- coding: utf-8 -*-



import sys

import os

import math

import re

import random



# copy of cima code

# to confirm system is working correctly



en='ABCDEFGHIJKLMNOPQRSTUVWXYZ'+' .,-\'?'

de={

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

}

while 1:

    try:s=eval(input())

    except:break

    a=b=c=''

    for x in s:a+=str(bin(en.index(x)))[2:].zfill(5)

    for x in a:

        b+=x

        if b in de:c+=de[b];b=''

    print(c)
# -*- coding: utf-8 -*-



import sys

import os

import math

import re

import random



tableA = {

    "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"}



tableB = {

    "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"}



def my_solve(s):

    # encode

    # lst = []

    # for c in s:

    #     lst.append(tableA[c])

    # s = ''.join(lst)



    en = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + ' .,-\'?'

    a = b = c = ''

    for x in s: a += str(bin(en.index(x)))[2:].zfill(5)

    s = a



    de = {

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

    }

    for x in a:

        b += x

        if b in de: c += de[b];b = ''

    return c



    # tmp, ans = '', ''

    # for c in s:

    #     tmp += c

    #     if tmp in tableB:

    #         ans += tableB[tmp]

    #         tmp = ''

    # return ans



while True:

    try:

        s = eval(input())

    except:

        break



    print((my_solve(s)))
# -*- coding: utf-8 -*-
import sys
import os
import math
import re
import random

# copy of cima code
# to confirm system is working correctly
en = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + " .,-'?"
de = {
    "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",
}
while 1:
    try:
        s = eval(input())
    except:
        break
    a = b = c = ""
    for x in s:
        a += str(bin(en.index(x)))[2:].zfill(5)
    for x in a:
        b += x
        if b in de:
            c += de[b]
            b = ""
    print(c)

# -*- coding: utf-8 -*-
import sys
import os
import math
import re
import random

tableA = {
    "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",
}
tableB = {
    "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",
}


def my_solve(s):
    # encode
    # lst = []
    # for c in s:
    #     lst.append(tableA[c])
    # s = ''.join(lst)
    en = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + " .,-'?"
    a = b = c = ""
    for x in s:
        a += str(bin(en.index(x)))[2:].zfill(5)
    s = a
    de = {
        "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",
    }
    for x in a:
        b += x
        if b in de:
            c += de[b]
            b = ""
    return c
    # tmp, ans = '', ''
    # for c in s:
    #     tmp += c
    #     if tmp in tableB:
    #         ans += tableB[tmp]
    #         tmp = ''
    # return ans


while True:
    try:
        s = eval(input())
    except:
        break
    print((my_solve(s)))

-# copy of cima code -# to confirm system is working correctly -en = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + " .,-'?" -de = { +tableA = { +    "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", +} +tableB = { -while 1: -    try: -        s = eval(input()) -    except: -        break + + +def my_solve(s): +    # encode +    # lst = [] +    # for c in s: +    #     lst.append(tableA[c]) +    # s = ''.join(lst) +    en = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + " .,-'?" +    s = a +    de = { +        "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", +    } -    print(c) +    return c +    # tmp, ans = '', '' +    # for c in s: +    #     tmp += c +    #     if tmp in tableB: +    #         ans += tableB[tmp] +    #         tmp = '' +    # return ans + + +while True: +    try: +        s = eval(input()) +    except: +        break +    print((my_solve(s)))