#include <bits/stdc++.h>
using namespace std;
string s;
int t = 0;
char c[100005];
signed main(){
cin >> s;
if(s == "0"){
cout << "0";
return 0;
}
for(int i = s.size() - 1 ; i >= 0 ; i--){
if(s[i] == '0') c[++t] = '0' , c[++t] = '0' , c[++t] = '0' , c[++t] = '0';
if(s[i] == '1') c[++t] = '1' , c[++t] = '0' , c[++t] = '0' , c[++t] = '0';
if(s[i] == '2') c[++t] = '0' , c[++t] = '1' , c[++t] = '0' , c[++t] = '0';
if(s[i] == '3') c[++t] = '1' , c[++t] = '1' , c[++t] = '0' , c[++t] = '0';
if(s[i] == '4') c[++t] = '0' , c[++t] = '0' , c[++t] = '1' , c[++t] = '0';
if(s[i] == '5') c[++t] = '1' , c[++t] = '0' , c[++t] = '1' , c[++t] = '0';
if(s[i] == '6') c[++t] = '0' , c[++t] = '1' , c[++t] = '1' , c[++t] = '0';
if(s[i] == '7') c[++t] = '1' , c[++t] = '1' , c[++t] = '1' , c[++t] = '0';
if(s[i] == '8') c[++t] = '0' , c[++t] = '0' , c[++t] = '0' , c[++t] = '1';
if(s[i] == '9') c[++t] = '1' , c[++t] = '0' , c[++t] = '0' , c[++t] = '1';
if(s[i] == 'A') c[++t] = '0' , c[++t] = '1' , c[++t] = '0' , c[++t] = '1';
if(s[i] == 'B') c[++t] = '1' , c[++t] = '1' , c[++t] = '0' , c[++t] = '1';
if(s[i] == 'C') c[++t] = '0' , c[++t] = '0' , c[++t] = '1' , c[++t] = '1';
if(s[i] == 'D') c[++t] = '1' , c[++t] = '0' , c[++t] = '1' , c[++t] = '1';
if(s[i] == 'E') c[++t] = '0' , c[++t] = '1' , c[++t] = '1' , c[++t] = '1';
if(s[i] == 'F') c[++t] = '1' , c[++t] = '1' , c[++t] = '1' , c[++t] = '1';
}
if(t % 3 != 0){
if(t % 3 == 1) c[++t] = '0';
if(t % 3 == 2) c[++t] = '0' , c[++t] = '0';
}
int cnt = 0;
char q[100005] = {0};
for(int i = 1 ; i <= t ; i += 3){
int x = (c[i] - '0') * 1 + (c[i + 1] - '0') * 2 + (c[i + 2] - '0') * 4;
q[++cnt] = x + '0';
}
int flag = 0;
for(int i = cnt ; i >= 1 ; i--){
if(q[i] == '0' && !flag) continue;
cout << q[i]; flag = 1;
}
return 0;
}