#include <iostream>
#include <iomanip>
#include <vector>
#include <string>
#include <stack>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <algorithm>
#include <sstream>
#include <cstdlib>
#include <cstring>
#include <functional>
#include <numeric>
#include <cmath>
#include <climits>
#include <limits>
#include <cfloat>
#include <fstream>
using namespace std;

struct ETABLE{
	char cha;
	string code;
};

struct DTABLE{
	string code;
	char cha;
}; 

int main()
{
	const ETABLE s[] = {
{' ', "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"}
};
	const DTABLE t[] = {
{"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",'?'}
};

//	freopen("testcase.codedoctor", "r", stdin);
	string str = "";

	map <char, string > encode;
	map <string, char > decode;
	int i;

//	cout << "sizeof (code): " << sizeof (s)/sizeof (s[0]) << endl;

	for (i = 0; i < sizeof (s)/sizeof (s[0]); ++i){
		encode[s[i].cha] = s[i].code;
		decode[t[i].code] = t[i].cha;
	} // end for
/*
	map <char, string >::iterator it = encode.begin();
	for (; it != encode.end(); ++it ){
		cout << (*it).first << ':' << (*it).second << endl;
	} // end for

	map <string, char >::iterator it = decode.begin();
	for (; it != decode.end(); ++it ){
		cout << (*it).first << ':' << (*it).second << endl;
	} // end for
*/
	while (getline (cin, str ) ){
		string temp = "";
		int len = str.length();

		for (i = 0; i < len; ++i){
			char c = str[i];
			temp += encode[c];
		} // end for
		if (temp.length() % 5 != 0 ){
			temp += string (5 - temp.length() % 5, '0' );
		} // end if
		//cout << temp << endl;
		len = temp.length();

		for (i = 0; i < len; i += 5 ){
			string str = temp.substr (i, 5);
//			cout << "str: " << str << endl;
			cout << decode[str];
		} // end for
		cout << endl;		
		
	} // end loop
		
	return 0;
}