#include <bits/stdc++.h>
using namespace std;
const double Pi = acos(-1.0);
const double EPS = 1e-9;
const int INF = 2 * 1e9;
int a[3][3][3][3];
pair<int, int> Solve3(int n, int m) {
  int a = 0, b = 0;
  for (int k = 0; k < 3; k++)
    for (int l = 0; l < 3; l++) {
      for (int i = k * 3 + 1; i <= k * 3 + 3; i++) {
        for (int j = l * 3 + 1; j <= l * 3 + 3; j++) {
          if (i == n && j == m) return make_pair(a, b);
          b++;
        }
        a++;
        b = 0;
      }
      a = 0;
    }
}
string Solve1(int n) {
  int m = n % 3;
  n /= 3;
  string ans = "";
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) switch (a[n][i][m][j]) {
        case 0:
          ans += ".";
          break;
        case 1:
          ans += "x";
          break;
        case 2:
          ans += "o";
          break;
        case 3:
          ans += "!";
          break;
      }
    ans += " ";
  }
  return ans;
}
string Solve2(int n) {
  int m = n % 3;
  n /= 3;
  string ans = "";
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) switch (a[n][i][m][j]) {
        case 0:
          ans += "!";
          break;
        case 1:
          ans += "x";
          break;
        case 2:
          ans += "o";
          break;
      }
    ans += " ";
  }
  return ans;
}
int main() {
  ios_base::sync_with_stdio(0);
  int n, m;
  string s[9];
  for (int i = 0; i < 9; i++) {
    getline(cin, s[i]);
    s[i].erase(3, 1);
    s[i].erase(6, 1);
    if ((i == 2) || (i == 5)) getline(cin, s[8]);
  }
  for (int i = 0; i < 3; i++)
    for (int j = 0; j < 3; j++)
      for (int ii = 0; ii < 3; ii++)
        for (int jj = 0; jj < 3; jj++) switch (s[i * 3 + ii][j * 3 + jj]) {
            case '.':
              a[i][j][ii][jj] = 0;
              break;
            case 'x':
              a[i][j][ii][jj] = 1;
              break;
            case 'o':
              a[i][j][ii][jj] = 2;
              break;
          }
  cin >> n >> m;
  int p, q;
  p = n;
  q = m;
  n = Solve3(p, q).first;
  m = Solve3(p, q).second;
  bool tmp = false;
  for (int i = 0; i < 3; i++)
    for (int j = 0; j < 3; j++)
      if (a[n][m][i][j] == 0) {
        tmp = true;
        a[n][m][i][j] = 3;
      }
  for (int i = 0; i < 9; i++) s[i].clear();
  if (tmp == true)
    for (int h = 0; h < 9; h++) s[h] = Solve1(h);
  else
    for (int h = 0; h < 9; h++) s[h] = Solve2(h);
  for (int i = 0; i < 9; i++) {
    cout << s[i] << endl;
    if ((i == 2) || (i == 5)) cout << endl;
  }
  return 0;
}
