#include <iostream>
#include <string>
using namespace std;

int main(){
  string numal[]={"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 numtmp=" ',-.?ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  string alpha[]={"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 altmp="ABCDEFGHIJKLMNOPQRSTUVWXYZ .,-'?";
  string line,chli,ans;
  while(1){
    getline(cin,line);
    if(cin.eof()) break;
    for(int i=0;i<line.size();i++){
      for(int j=0;j<32;j++){
	if(line[i] == altmp[j]){
	  chli += alpha[j];
	  break;
	}
      }
    }
    for(int j=3;j<=8;j++){
      string tmp = chli.substr(0,j);
      for(int k=0;k<32;k++){
	if(numal[k] == tmp){
	  ans += numtmp[k];
	  chli.erase(0,j);
	  j = 2;
	  break;
	}
      }
    }
    cout << ans << endl;
    ans.erase();
    chli.erase();
  }
}