#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e6 + 5;
char tab[10][10];
bool czy(int a, int b) {
  for (int i = 0; i < 3; i++)
    for (int j = 0; j < 3; j++)
      if (tab[3 * a + i][3 * b + j] == '.') return true;
  return false;
}
void solve(int a, int b) {
  a--;
  b--;
  a %= 3;
  b %= 3;
  if (czy(a, b)) {
    for (int i = 0; i < 3; i++)
      for (int j = 0; j < 3; j++)
        if (tab[3 * a + i][3 * b + j] == '.') tab[3 * a + i][3 * b + j] = '!';
  } else {
    for (int i = 0; i < 9; i++)
      for (int j = 0; j < 9; j++)
        if (tab[i][j] == '.') tab[i][j] = '!';
  }
  for (int i = 0; i < 9; i++) {
    for (int j = 0; j < 9; j++) {
      cout << tab[i][j];
      if (j % 3 == 2) cout << ' ';
    }
    cout << '\n';
    if (i % 3 == 2) cout << '\n';
  }
}
int main() {
  ios::sync_with_stdio(0);
  cout.tie(0);
  cin.tie(0);
  int a, b;
  vector<string> v(27);
  for (int i = 0; i < 27; i++) cin >> v[i];
  for (int i = 0; i < 27; i++)
    for (int j = 0; j < 3; j++) tab[i / 3][3 * (i % 3) + j] = v[i][j];
  cin >> a >> b;
  solve(a, b);
}
