#include char a[1000005]; int main() { int i = 0; for(;;) { char c; for (int k=0; k < i+5; k++) a[k] = 0; i = 0; for(;;) { if(scanf("%c", &c) != 1) { return 0; } if (c == '\n') break; a[5+i++] = c-'0'; } a[i+4]++; for (int k = i+4; k >= 0; k--) { switch (a[k]) { case 0: continue; case 1: continue; case 2: if (a[k-1] >= 1) { a[k] = 0; a[k-1]--; } else { a[k] = 0; a[k-1]++; a[k-2]++; } break; case 3: if (a[k-1] >= 1) { a[k] = 1; a[k-1]--; } else if (a[k-1] == 0) { a[k] = 1; a[k-1]++; a[k-2]++; } else { printf("undef\n"); } break; default: printf("undef2\n"); } } int write = 0; for (int k = 0; k < i+5; k++) { if ((a[k] == 1) || (k == i+4)) write = 1; if (write) printf("%d", a[k]); } printf("\n"); } }