#include <bits/stdc++.h>
using namespace std;
int a[3][3];
bool mark[3][3];
bool valid(int i, int j) {
  if ((i >= 0 && i < 3) && (j >= 0 && j < 3)) return true;
  return false;
}
void toggle(int i, int j) {
  bool temp = false;
  if (a[i][j] % 2 == 1)
    temp = true;
  else
    return;
  mark[i][j] ^= temp;
  if (valid(i, j + 1)) mark[i][j + 1] ^= temp;
  if (valid(i, j - 1)) mark[i][j - 1] ^= temp;
  if (valid(i + 1, j)) mark[i + 1][j] ^= temp;
  if (valid(i - 1, j)) mark[i - 1][j] ^= temp;
}
int main() {
  memset(mark, false, sizeof(mark));
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      cin >> a[i][j];
    }
  }
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      toggle(i, j);
    }
  }
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      mark[i][j] ^= true;
    }
  }
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      if (mark[i][j])
        cout << 1;
      else
        cout << 0;
    }
    cout << endl;
  }
}
