encode = {
  "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"
}
 
decode = {
  "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 line = gets
  input = line.chomp
  encoded = input.split('').each.map do |i|
    encode[i]
  end.join

  i, j = 0, 0
  stack = []
  while j < encoded.length
    if decode.keys.index(encoded[i..j])
      stack << decode[encoded[i..j]]
      j += 1
      i = j
    else
      j += 1
    end
  end

  puts stack.join
end