#include #include #include #include #include #include #define REP(i, cnt) for (int i = 0; i < (cnt); i++) using namespace std; typedef long long int64; string rev(const string &str) { string out = str; REP(i, str.length()) out[i] = str[str.length()-i-1]; return out; } int main() { string input; string reverse; while (getline(cin, input)) { reverse = rev(input); bool done = false; int sign = 1; for (int j = 0; j < reverse.length(); j++) { int bit = reverse[j]-'0'; reverse[j] = '0'+!bit; if ((sign < 0 && bit) || (sign > 0 && !bit)) { done = true; break; } sign *= -1; } while (!done) { int bit = 0; reverse += '1'; if ((sign < 0 && bit) || (sign > 0 && !bit)) { done = true; break; } sign *= -1; } int len = reverse.length(); for (int j = reverse.length()-1; j > 0; j--) { if (reverse[j] == '0') len--; else break; } cout << rev(reverse.substr(0, len)) << endl; } return 0; }