#include<stdio.h> #include<string.h> #include<math.h> #include<stdlib.h> #include<algorithm> #include<iostream> #include<queue> #include<stack> #include<map> #include<set> #include<vector> #include<string> using namespace std; typedef long long LL; const LL MAXN=1e8+10; LL a[MAXN]={0}; vector<int> devide(vector<int>a){ vector<int>c; int t=0; for(int i=0;i<a.size();i++){ t=t*10+a[i]; c.push_back(t/2); t=t%2; } reverse(c.begin(),c.end()); while(c.size()>0&&c.back()==0)c.pop_back(); reverse(c.begin(),c.end()); return c; } int main(){ string s; while(cin>>s){ vector<int>a; for(int i=0;i<s.size();i++){ a.push_back(s[i]-'0'); } vector<int>ansever; while(a.size()>0){ ansever.push_back(a[a.size()-1]%2); a=devide(a); } for(int i=ansever.size()-1;i>=0;i--)cout<<ansever[i]; cout<<endl; } return 0; }