#include "bits/stdc++.h"

#define REP(i,num) for(int i=0;i<(num);++i)
#define ALL(c) c.begin(),c.end()
#define LOOP(i) while(i--)
#define PRINTALL(c) for(auto& x:c){cout<<x<<' ';}cout<<endl;
#define PAIRCOMP(c,comp) [](const pair<ll,ll>& lhs,const pair<ll,ll>& rhs){return lhs.c comp rhs.c;}

using namespace std;
using ll = long long;

constexpr ll atcoder_mod = 1e9+7;

template<typename T=int>
T in(){T x; cin >> x; return (x);}
template<typename T=int,typename C=vector<T>>
C vecin(int N){C x(N);REP(i,N){x[i]=in<T>();}return move(x);}

void vout(){cout << endl;}
template<typename Head,typename... Tail>
void vout(Head&& h,Tail&&... t){cout << ' ' << h;vout(forward<Tail>(t)...);}
void out(){cout << endl;}
template<typename Head,typename... Tail>
void out(Head&& h,Tail&&... t){cout << h;vout(forward<Tail>(t)...);}

int main(){
	cin.tie(0);
	ios::sync_with_stdio(false);

	map<char,string> encode={{' ',"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"}};
	map<string,char> decode={{"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",'?'}};

	char str[110];
	while(cin.getline(str,sizeof(str))){
		string S;
		int index=0;
		while(str[index]!='\0'){
			S.append(encode[str[index++]]);
		}
		int pad = S.size()%5;
		if(pad){
			REP(i,5-pad){
				S.push_back('0');
			}
		}
		string T;
		for(int i=0,ei=S.size();i<ei;i+=5){
			T.push_back(decode[S.substr(i,5)]);
		}
		out(T);
	}
	
	return 0;
}
