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

    while(true){
        string str;
        getline(cin,str);
        if(cin.eof())break;
        string code="";
        for(int i=0;i<str.length();i++){
            code+=m[str[i]];
        }

        string ans="";
        string r="";
        for(int i=0;i<code.length();i++){
            r+=code[i];
            if(S.find(r)!=S.end()){
                ans+=S[r];
                r="";
            }
        }
        cout<<ans<<endl;
    }
    return 0;
}