#include<iostream>
#include<cstdio>
#include<string>
#include<vector>
using namespace std;
string Divide(string str,int x){
int remainder=0;
int temp;
for(int i=0;i<str.size();++i){
temp=remainder*10+str[i]-'0';
str[i]=temp/x+'0';
remainder=temp%x;
}
int pos=0;
while(str[pos]=='0'){
++pos;
}
return str.substr(pos);
}
string Multiply(string str,int x){
int advance=0;
for(int i=str.size()-1;i>=0;--i){
advance=(str[i]-'0')*x+advance;
str[i]=advance%10+'0';
advance/=10;
}
if (advance != 0) {
str.insert(0, "1");
}
return str;
}
string Add(string str,int x){
int advance=x;
for(int i=str.size()-1;i>=0;--i){
advance=str[i]-'0'+advance;
str[i]=advance%10+'0';
advance/=10;
}
if(advance!=0){
str.insert(0, "1");
}
return str;
}
int main(){
string number;
cin>>number;
string binary;
while(number.size()){
binary.push_back((number[number.size()-1]-'0')%2+'0');
number=Divide(number, 2);
}
string resultant="0";
for(int i=0;i<binary.size();++i){
resultant=Multiply(resultant, 2);
resultant=Add(resultant,binary[i]-'0');
}
cout<<resultant<<endl;
return 0;
}