#include <bits/stdc++.h>
using namespace std;
const int INF = 0x7FFFFFFF;
struct prioritycom {
  bool operator()(const int& l, const int& r) { return l < r; }
};
template <typename T>
T lcm(T a, T b) {
  return a / __gcd(a, b) * b;
}
template <class T>
T bigmod(T n, T p, T m) {
  if (p == 0) return 1;
  if (p % 2 == 0) {
    T t = bigmod(n, p / 2, m);
    return (t * t) % m;
  }
  return (bigmod(n, p - 1, m) * n) % m;
}
template <class string>
long long int strton(string s) {
  long long int won;
  stringstream ss;
  ss << s;
  ss >> won;
  return won;
}
template <class T>
string ntostr(T n) {
  stringstream ss;
  ss << n;
  return ss.str();
}
template <class T>
inline T mod(T n, T m) {
  return (n % m + m) % m;
}
template <class T>
bool isprime(T n) {
  if (n % 2 == 0) {
    if (n == 2)
      return true;
    else
      return false;
  }
  T m = sqrt(n);
  for (T i = 3; i <= m; i += 2) {
    if (n % i == 0) return false;
  }
  return true;
}
bool isvowel(char ch) {
  ch = toupper(ch);
  if (ch == 'A' || ch == 'U' || ch == 'I' || ch == 'O' || ch == 'E')
    return true;
  return false;
}
bool isconsonant(char ch) {
  if (isalpha(ch) && !isvowel(ch)) return true;
  return false;
}
char s[15][15];
int main() {
  int x, y, cnt = 0;
  for (int i = 1; i <= 9; i++) {
    for (int j = 1; j <= 11; j++) {
      scanf("%c", &s[i][j]);
    }
    getchar();
    if (i % 3 == 0 && i != 9) getchar();
  }
  scanf("%d%d", &x, &y);
  if (x % 3 == 0) {
    if (y == 3 || y == 6 || y == 9) {
      for (int i = 7; i <= 9; i++) {
        for (int j = 9; j <= 11; j++) {
          if (s[i][j] != '.') {
            cnt++;
          } else
            s[i][j] = '!';
        }
      }
    }
    if (y == 1 || y == 4 || y == 7) {
      for (int i = 7; i <= 9; i++) {
        for (int j = 1; j <= 3; j++) {
          if (s[i][j] != '.') {
            cnt++;
          } else
            s[i][j] = '!';
        }
      }
    }
    if (y == 2 || y == 5 || y == 8) {
      for (int i = 7; i <= 9; i++) {
        for (int j = 5; j <= 7; j++) {
          if (s[i][j] != '.') {
            cnt++;
          } else
            s[i][j] = '!';
        }
      }
    }
  }
  if (x == 2 || x == 5 || x == 8) {
    if (y == 3 || y == 6 || y == 9) {
      for (int i = 4; i <= 6; i++) {
        for (int j = 9; j <= 11; j++) {
          if (s[i][j] != '.') {
            cnt++;
          } else
            s[i][j] = '!';
        }
      }
    }
    if (y == 1 || y == 4 || y == 7) {
      for (int i = 4; i <= 6; i++) {
        for (int j = 1; j <= 3; j++) {
          if (s[i][j] != '.') {
            cnt++;
          } else
            s[i][j] = '!';
        }
      }
    }
    if (y == 2 || y == 5 || y == 8) {
      for (int i = 4; i <= 6; i++) {
        for (int j = 5; j <= 7; j++) {
          if (s[i][j] != '.') {
            cnt++;
          } else
            s[i][j] = '!';
        }
      }
    }
  }
  if (x == 1 || x == 4 || x == 7) {
    if (y == 3 || y == 6 || y == 9) {
      for (int i = 1; i <= 3; i++) {
        for (int j = 9; j <= 11; j++) {
          if (s[i][j] != '.') {
            cnt++;
          } else
            s[i][j] = '!';
        }
      }
    }
    if (y == 1 || y == 4 || y == 7) {
      for (int i = 1; i <= 3; i++) {
        for (int j = 1; j <= 3; j++) {
          if (s[i][j] != '.') {
            cnt++;
          } else
            s[i][j] = '!';
        }
      }
    }
    if (y == 2 || y == 5 || y == 8) {
      for (int i = 1; i <= 3; i++) {
        for (int j = 5; j <= 7; j++) {
          if (s[i][j] != '.') {
            cnt++;
          } else
            s[i][j] = '!';
        }
      }
    }
  }
  if (cnt == 9) {
    for (int i = 1; i <= 9; i++) {
      for (int j = 1; j <= 11; j++) {
        if (s[i][j] == '.') s[i][j] = '!';
        printf("%c", s[i][j]);
      }
      printf("\n");
      if (i % 3 == 0) printf("\n");
    }
  } else {
    for (int i = 1; i <= 9; i++) {
      for (int j = 1; j <= 11; j++) {
        printf("%c", s[i][j]);
      }
      printf("\n");
      if (i % 3 == 0) printf("\n");
    }
  }
}
