#include<cstdio>
#include<iostream>
#include<queue>
#include<map>
#include<string>
using namespace std;
char word[]{' ','\'',',','-','.','?','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
char words[]{' ','.',',','-','\'','?'};
string decord[]{
    "101",
    "000000",
    "000011",
    "10010001",
    "010001",
    "000001",
    "100101",
    "10011010",
    "0101",
    "0001",
    "110",
    "01001",
    "10011011",
    "010000",
    "0111",
    "10011000",
    "0110",
    "00100",
    "10011001",
    "10011110",
    "00101",
    "111",
    "10011111",
    "1000",
    "00110",
    "00111",
    "10011100",
    "10011101",
    "000010",
    "10010010",
    "10010011",
    "10010000"
};
string encord[]{
    "00000",
    "00001",
    "00010",
    "00011",
    "00100",
    "00101",
    "00110",
    "00111",
    "01000",
    "01001",
    "01010",
    "01011",
    "01100",
    "01101",
    "01110",
    "01111",
    "10000",
    "10001",
    "10010",
    "10011",
    "10100",
    "10101",
    "10110",
    "10111",
    "11000",
    "11001",
    "11010",
    "11011",
    "11100",
    "11101",
    "11110",
    "11111"
};
string checkdecord(char moji){
    string ans;
    for(int i=0;i<32;i++){
        if(moji==word[i]){
            ans=decord[i];
        }
    }
    return ans;
}
int main(){
    while(1){
        map<string,char> maps;
        int k=5;
        int l;
        for(int i=0;i<32;i++){
            k++;
            if(k>=32){
                l=k-32;
                maps[encord[i]] = words[l];
            }else{
                maps[encord[i]] = word[k];
            }
        }
        string hoge;
        char name[100]={0};
        scanf("%[^\n]",name);
        getchar();
        if(name[0]=='\0')break;
        queue<char> que;
        //scanf("%[^\n]",name);
        for(int i=0;;i++){
            if(name[i]=='\0')break;
            hoge = checkdecord(name[i]);
            for(int j=0;;j++){
                if(hoge[j]=='\0')break;
                que.push(hoge[j]);
            }
        }
        string encordword,encordstring;
        for(int i=0;;i++){
            if(que.empty())break;
            for(int j=0;j<5;j++){
                encordword += que.front();
                que.pop();
                if(que.empty()){
                    for(;;){
                    j++;
                    encordword +='0';
                    if(j==4)break;
                    }
                }
            }
            encordstring += maps[encordword];
            encordword="";
        }
        cout<<encordstring<<endl;
    }
    return 0;
}