#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")