#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
const int maxn = 2e5 + 88;
const int inf = 2e9 + 88;
const int logn = 22;
const int maxa = 3e6 + 88;
const int block = 350;
const long long infll = 1e18 + 88;
const char sgl[5] = {'a', 'e', 'i', 'o', 'u'};
const int dx[] = {-1, 1, 0, 0};
const int dy[] = {0, 0, -1, 1};
const char sep = 'a' - 1;
const double eps = 1e-9;
const int maxn1 = 1e3 + 88;
char a[10][10][10];
string s;
void solve() {
  int i, j, k;
  for (i = 0; i < 3; i++) {
    for (k = 0; k < 3; k++) {
      getline(cin, s);
      for (j = 0; j < s.length(); j++)
        if (i % 4 != 3) a[i * 3 + j / 4][k][j % 4] = s[j];
    }
    if (i != 2) getline(cin, s);
  }
  int x, y;
  cin >> x >> y;
  x--, y--;
  x %= 3;
  y %= 3;
  int cnt = 0;
  for (i = 0; i < 3; i++)
    for (j = 0; j < 3; j++)
      if (a[x * 3 + y][i][j] == '.') {
        a[x * 3 + y][i][j] = '!';
        cnt++;
      }
  if (cnt == 0)
    for (i = 0; i < 9; i++)
      for (k = 0; k < 3; k++)
        for (j = 0; j < 3; j++)
          if (a[i][k][j] == '.') a[i][k][j] = '!';
  int c;
  for (c = 0; c < 3; c++) {
    for (j = 0; j < 3; j++) {
      for (k = c * 3; k < (c + 1) * 3; k++) {
        for (i = 0; i < 3; i++) cout << a[k][j][i];
        cout << " ";
      }
      cout << endl;
    }
    cout << endl;
  }
}
int main() {
  srand(time(0));
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  solve();
  return 0;
}
