func_code_string: #include <bits/stdc++.h>   using namespace std;   const int inf = ~0U >> 1;   const long long INF = ~0ULL >> 1;   template <class T>   inline void read(T &n) {     char c;     int flag = 1;     for (c = getchar(); !(c >=  0  && c <=  9  || c ==  - ); c = getchar())       ;     if (c ==  - )       flag = -1, n = 0;     else       n = c -  0 ;     for (c = getchar(); c >=  0  && c <=  9 ; c = getchar()) n = n * 10 + c -  0 ;     n *= flag;   }   int v[100][100], d[100][100];   char str[10000];   int n;   void p0() {     for (int j = 1; j <= 4; j += 3)       for (int i = 1; i <= 4; i += 2)         if (!v[i][j] && !v[i + 1][j]) {           v[i][j] = v[i + 1][j] = 1;           printf( %d %d n , i, j);           return;         }     assert(0);   }   void p1() {     for (int i = 1; i <= 4; i++)       if (!v[i][2] && !v[i][3]) {         v[i][2] = v[i][3] = 1;         printf( %d %d n , i, 2);         return;       }     assert(0);   }   int main(int argc, char *argv[]) {     scanf( %s , str);     n = strlen(str);     for (int i = (0); i < (n); ++i) {       if (str[i] ==  0 ) {         p0();       } else {         p1();       }       for (int x = (1); x <= (4); ++x)         for (int y = (1); y <= (4); ++y) {           d[x][y] = false;           bool ok = true;           for (int z = (1); z <= (4); ++z)             if (!v[x][z]) ok = false;           if (ok) d[x][y] = true;           ok = true;           for (int z = (1); z <= (4); ++z)             if (!v[z][y]) ok = false;           if (ok) d[x][y] = true;         }       for (int x = (1); x <= (4); ++x)         for (int y = (1); y <= (4); ++y)           if (d[x][y]) v[x][y] = 0;     }     return 0;   }   