#include #include #include #include #include #include #define REP(i, cnt) for (int i = 0; i < (cnt); i++) using namespace std; typedef long long int64; int myabs(int x) { return x < 0 ? -x : x; } int mydiv(int x, int d) { return (x-(x < 0)*(myabs(d)-1))/d; } int mymod(int x, int m) { x %= m; return x+(abs(m)*(x < 0)); } int main() { string input; string out1, out2; while (getline(cin, input)) { stringstream output; int value = 0; int order = 1; for (int i = input.length()-1; i >= 0; i--) { value += (input[i]-'0')*order; order *= -2; } //printf("%d\n", value); value++; int sign = 1; while (value) { if (value&1) { value -= sign; output << '1'; } else output << '0'; value >>= 1; sign = -sign; } out2 = out1 = output.str(); REP(i, out1.length()) out2[i] = out1[out1.length()-i-1]; if (!out2.length()) cout << '0'; cout << out2 << endl; } return 0; }