lines = ""
while buf = gets.to_s
  break if buf =~ /EOF/
  lines << buf
end
lines.gsub!(/1+/) {|matched| %w(' , . ! ?)[matched.length - 1 - 5 * ((matched.length - 1) / 5)]}
lines.gsub!(/2+/) {|matched| %w(a b c A B C)[matched.length - 1 - 6 * ((matched.length - 1) / 6)]}
lines.gsub!(/3+/) {|matched| %w(d e f D E F)[matched.length - 1 - 6 * ((matched.length - 1) / 6)]}
lines.gsub!(/4+/) {|matched| %w(g h i G H I)[matched.length - 1 - 6 * ((matched.length - 1) / 6)]}
lines.gsub!(/5+/) {|matched| %w(j k l J K L)[matched.length - 1 - 6 * ((matched.length - 1) / 6)]}
lines.gsub!(/6+/) {|matched| %w(m n o M N O)[matched.length - 1 - 6 * ((matched.length - 1) / 6)]}
lines.gsub!(/7+/) {|matched| %w(p q r s P Q R S)[matched.length - 1 - 8 * ((matched.length - 1) / 8)]}
lines.gsub!(/8+/) {|matched| %w(t u v T U V)[matched.length - 1 - 6 * ((matched.length - 1) / 6)]}
lines.gsub!(/9+/) {|matched| %w(w x y z W X Y Z)[matched.length - 1 - 8 * ((matched.length - 1) / 8)]}
lines.gsub!(/0+/) {|matched| ' ' * (matched.length - 1)}
print lines