to_binary = {
  ' ' => '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'
}

to_char = { }

[*'A'..'Z', ' ', '.', ',', '-', "'", '?'].each_with_index do |char, i|
  to_char[sprintf("%05b", i)] = char
end

readlines.each do |line|
  string = line.chomp

  binary = string.chars.map do |char|
    to_binary[char]
  end.join

  puts binary.chars.each_slice(5).map { |bin|
    to_char[bin.join.ljust(5, '0')]
  }.join
end