#include <bits/stdc++.h>
using namespace std;
const int N = 100010;
int g[10][10];
char s[N];
int n;
bool check(int x, int y, char c) {
  if (g[x][y]) return false;
  if (c == '0') {
    if (x + 1 > 4) return false;
    if (g[x + 1][y]) return false;
  }
  if (c == '1') {
    if (y + 1 > 4) return false;
    if (g[x][y + 1]) return false;
  }
  return true;
}
void turn(int x, int y, char c, int k) {
  g[x][y] = k;
  if (c == '0') g[x + 1][y] = k;
  if (c == '1') g[x][y + 1] = k;
}
bool del() {
  bool flag = false;
  for (int i = 1; i <= 4; i++) {
    int res = 0;
    for (int j = 1; j <= 4; j++) res += g[i][j];
    if (res == 4) {
      for (int j = 1; j <= 4; j++) g[i][j] = 0;
      flag = true;
    }
  }
  for (int i = 1; i <= 4; i++) {
    int res = 0;
    for (int j = 1; j <= 4; j++) res += g[j][i];
    if (res == 4) {
      for (int j = 1; j <= 4; j++) g[j][i] = 0;
      flag = true;
    }
  }
  return flag;
}
void solve() {
  scanf("%s", s);
  n = strlen(s);
  for (int i = 0; i < n; i++) {
    int x = -1, y = -1;
    bool flag = false;
    for (int j = 1; j <= 4; j++) {
      for (int k = 1; k <= 4; k++)
        if (check(j, k, s[i])) {
          turn(j, k, s[i], 1);
          if (del()) {
            x = j, y = k;
            flag = true;
            break;
          }
          turn(j, k, s[i], 0);
        }
      if (flag) break;
    }
    if (!flag) {
      for (int j = 1; j <= 4; j++) {
        for (int k = 1; k <= 4; k++)
          if (check(j, k, s[i])) {
            turn(j, k, s[i], 1);
            flag = true;
            printf("%d %d\n", j, k);
            break;
          }
        if (flag) break;
      }
    } else
      printf("%d %d\n", x, y);
  }
}
int main() {
  int T = 1;
  while (T--) {
    solve();
  }
  return 0;
}
