#include <iostream>
#include <string>
#include <vector>
#include <cmath>
using namespace std;
string Divide(string str, int x)
{
int remainder = 0;
for (int i = 0; i < str.size(); i++)
{
int current = remainder * 10 + str[i] - '0';
str[i] = current / x + '0';
remainder = current % x;
}
int pos = 0;
while (str[pos] == '0')
{
pos++;
}
return str.substr(pos);
}
string Multiple(string str,int x)
{
int carry=0;
for(int i=str.size()-1;i>=0;--i)
{
int current=x*(str[i]-'0')+carry;
str[i]=current%10+'0';
carry=current/10;
}
if(carry!=0)
{
str="1"+str;
}
return str;
}
string Add(string str,int x)
{
int carry=x;
for(int i=str.size()-1;i>=0;i--)
{
int current=(str[i]-'0')+carry;
str[i]=current%10+'0';
carry=current/10;
}
if(carry!=0)
{
str="1"+str;
}
return str;
}
int main() {
string num;
cin>>num;
vector<int> binary;
while (num.size()!=0)
{
int last=num[num.size()-1]-'0';
binary.push_back(last%2);
num=Divide(num, 2);
}
int sum=0;
string answer="0";
for(int i=0;i<binary.size();i++)
{
answer=Multiple(answer,2);
answer=Add(answer,binary[i]);
}
cout<<answer;
}
// 64 位输出请用 printf("%lld")