class AsciiCode

  def initialize
    @b2a = {"00000" => "A", "00001" => "B", "00010" => "C", "00011" => "D", "00100" => "E", "00101" => "F", "00110" => "G", "00111" => "H", "01000" => "I", "01001" => "J", "01010" => "K", "01011" => "L", "01100" => "M", "01101" => "N", "01110" => "O", "01111" => "P", "10000" => "Q", "10001" => "R", "10010" => "S", "10011" => "T", "10100" => "U", "10101" => "V", "10110" => "W", "10111" => "X", "11000" => "Y", "11001" => "Z", "11010" => " ", "11011" => ".", "11100" => ",", "11101" => "-", "11110" => "'", "11111" => "?"}
    @a2d = {" " => "101","'" => "000000","," => "000011","-" => "10010001","." => "010001","?" => "000001","A" => "100101","B" => "10011010","C" => "0101","D" => "0001","E" => "110","F" => "01001","G" => "10011011","H" => "010000","I" => "0111","J" => "10011000","K" => "0110","L" => "00100","M" => "10011001","N" => "10011110","O" => "00101","P" => "111","Q" => "10011111","R" => "1000","S" => "00110","T" => "00111","U" => "10011100","V" => "10011101","W" => "000010","X" => "10010010","Y" => "10010011","Z" => "10010000"}
    @a2b = Hash[*(@b2a.to_a.map{|k,v| [v,k]}.flatten)]
    @d2a = Hash[*(@a2d.to_a.map{|k,v| [v,k]}.flatten)]
  end

  def s2c(f)
    s=[]
    while f.length > 0 do
      x = f.shift
      s.push(@a2b[x])
    end
    return s
  end

  def decode(bin0)
    bin=bin0.dup
    t=[]
    while bin.length>0 do
      3.upto(8){|i|    # 9 is dummy
        if @d2a.has_key?(bin.slice(0, i)) then
          t.push(@d2a[bin.slice!(0, i)])
          break
        elsif i>=bin.length then
          bin.slice!(0, i)
          break
        end
      }
    end
    return t
  end

end

def main
  if true then
    fh = STDIN
  else
    fh = open("in1_0111.txt")
  end
  ac = AsciiCode.new
  while fh.gets do
    f=$_.chomp.split(//)
    bin = ac.s2c(f).inject(""){|acc,x| acc+x}
    s= ac.decode(bin)

    puts s.join
  end
end

if $0 == __FILE__ then
  main
end