#include<bits/stdc++.h>
using namespace std;
string bin[11]={"000","001","010","011","100","101","110","111"};
string h[31][3]={
{"0000","0"},
{"0001","1"},
{"0010","2"},
{"0011","3"},
{"0100","4"},
{"0101","5"},
{"0110","6"},
{"0111","7"},
{"1000","8"},
{"1001","9"},
{"1010","a"},
{"1011","b"},
{"1100","c"},
{"1101","d"},
{"1110","e"},
{"1111","f"}
};
int search(string a){
for(int i=0;i<=15;i++)
if(h[i][0]==a)
return i;
return 0;
}
string to_bin(string o){
string ans;
for(int i=0;i<o.size();i++){
char c=o[i];
ans+=bin[int(c-'0')];
}
return ans;
}
void fix(string &a){
if(a.size()%4!=0){
reverse(a.begin(),a.end());
int t=4-a.size()%4;
for(int i=1;i<=t;i++){
a.push_back('0');
}
reverse(a.begin(),a.end());
}
return;
}
string to_hex(string b){
fix(b);
string ans;
for(int i=b.size();i>0;i-=4){
string t;
t=b.substr(i-4,4);
ans+=h[search(t)][1];
}
return ans;
}
int main(){
string a;
cin>>a;
reverse(a.begin(),a.end());
while(a.size()>1 && a[a.size()-1]=='0')a.erase(a.size()-1,1);
reverse(a.begin(),a.end());
string binn=to_bin(a);
string ans=to_hex(binn);
while(ans.size()>1 && ans[ans.size()-1]=='0')ans.erase(a.size()-1,1);
reverse(ans.begin(),ans.end());
cout<<ans;
return 0;
}