#include<iostream>
#include<string>
#include<map>
#include<algorithm>

using namespace std;

void init(map<char, string>* map1, map<string, char>* map2){
  map1->insert(make_pair(' ', "101"));
  map1->insert(make_pair('\'',"000000"));
  map1->insert(make_pair(',', "000011"));
  map1->insert(make_pair('-', "10010001"));
  map1->insert(make_pair('.', "010001"));
  map1->insert(make_pair('?', "000001"));
  map1->insert(make_pair('A', "100101"));
  map1->insert(make_pair('B', "10011010"));
  map1->insert(make_pair('C', "0101"));
  map1->insert(make_pair('D', "0001"));
  map1->insert(make_pair('E', "110"));
  map1->insert(make_pair('F', "01001"));
  map1->insert(make_pair('G', "10011011"));
  map1->insert(make_pair('H', "010000"));
  map1->insert(make_pair('I', "0111"));
  map1->insert(make_pair('J', "10011000"));
  map1->insert(make_pair('K', "0110"));
  map1->insert(make_pair('L', "00100"));
  map1->insert(make_pair('M', "10011001"));
  map1->insert(make_pair('N', "10011110"));
  map1->insert(make_pair('O', "00101"));
  map1->insert(make_pair('P', "111"));
  map1->insert(make_pair('Q', "10011111"));
  map1->insert(make_pair('R', "1000"));
  map1->insert(make_pair('S', "00110"));
  map1->insert(make_pair('T', "00111"));
  map1->insert(make_pair('U', "10011100"));
  map1->insert(make_pair('V', "10011101"));
  map1->insert(make_pair('W', "000010"));
  map1->insert(make_pair('X', "10010010"));
  map1->insert(make_pair('Y', "10010011"));
  map1->insert(make_pair('Z', "10010000"));
  map2->insert(make_pair("00000", 'A'));
  map2->insert(make_pair("00001", 'B'));
  map2->insert(make_pair("00010", 'C'));
  map2->insert(make_pair("00011", 'D'));
  map2->insert(make_pair("00100", 'E'));
  map2->insert(make_pair("00101", 'F'));
  map2->insert(make_pair("00110", 'G'));
  map2->insert(make_pair("00111", 'H'));
  map2->insert(make_pair("01000", 'I'));
  map2->insert(make_pair("01001", 'J'));
  map2->insert(make_pair("01010", 'K'));
  map2->insert(make_pair("01011", 'L'));
  map2->insert(make_pair("01100", 'M'));
  map2->insert(make_pair("01101", 'N'));
  map2->insert(make_pair("01110", 'O'));
  map2->insert(make_pair("01111", 'P'));
  map2->insert(make_pair("10000", 'Q'));
  map2->insert(make_pair("10001", 'R'));
  map2->insert(make_pair("10010", 'S'));
  map2->insert(make_pair("10011", 'T'));
  map2->insert(make_pair("10100", 'U'));
  map2->insert(make_pair("10101", 'V'));
  map2->insert(make_pair("10110", 'W'));
  map2->insert(make_pair("10111", 'X'));
  map2->insert(make_pair("11000", 'Y'));
  map2->insert(make_pair("11001", 'Z'));
  map2->insert(make_pair("11010", ' '));
  map2->insert(make_pair("11011", '.'));
  map2->insert(make_pair("11100", ','));
  map2->insert(make_pair("11101", '-'));
  map2->insert(make_pair("11110", '\''));
  map2->insert(make_pair("11111", '?'));
}

int main(){
  map<char, string> map1;
  map<string, char> map2;
  init(&map1, &map2);
  string s, t, u;
  while(getline(cin, s)){
    t.clear(); u.clear();
    for(int i=0; i<s.size(); ++i) u += map1[s[i]];
    if(u.size()%5 != 0) u += string(5-u.size()%5, '0');
    for(int i=0; i<u.size(); i+=5) t.push_back(map2[u.substr(i,5)]);
    cout << t << endl;
  }
  return 0;
}

Measured memory_bytes: 1216