#include char loops[105][105], visited[105][105]; bool normalChar(char c) { return (c == 'X' || c == 'A' || c == 'B'); } void remap(char letter, int fromx, int fromy, int x, int y) { if (loops[x][y] == 'X') loops[x][y] = letter; else if (loops[x][y] == letter) return; else if (loops[x][y] == 0) printf ("Error!!\n"); if (normalChar(loops[x+1][y]) && normalChar(loops[x-1][y]) && normalChar(loops[x][y-1]) && normalChar(loops[x][y+1])) { printf ("intersect %c at %d %d\n", letter, x, y); if (fromx == x-1 && fromy == y ) remap(letter, x, y, x+1, y); else if (fromx == x+1 && fromy == y ) remap(letter, x, y, x-1, y); else if (fromx == x && fromy == y-1) remap(letter, x, y, x, y+1); else if (fromx == x && fromy == y+1) remap(letter, x, y, x, y-1); return; } else { int allX[] = {1, -1, 0, 0}; int allY[] = {0, 0, 1, -1}; for (int i = 0; i < 4; i++) if (loops[x + allX[i]][y + allY[i]] == 'X' || loops[x + allX[i]][y + allY[i]] == (letter=='A'?'B':'A')) { remap(letter, x, y, x + allX[i], y + allY[i]); return; } } } int main() { int r, c; scanf ("%d %d", &r, &c); for (int i = 1; i <= r; i++) for (int j = 1; j <= c; j++) { scanf(" %c", &loops[i][j]); visited[i][j] = 0; } for (int i = 0; i <= r+1; i++) loops[i][0] = loops[i][c+1] = 0; for (int i = 0; i <= c+1; i++) loops[0][i] = loops[r+1][i] = 0; int done[] = {0, 0}; for (int i = 1; i <= r; i++) for (int j = 1; j <= c; j++) { if (loops[i][j] == 'A' && done[0] == 0) loops[i][j] = 'X', remap('A', i, j, i, j), done[0] = 1; if (loops[i][j] == 'B' && done[1] == 0) loops[i][j] = 'X', remap('B', i, j, i, j), done[1] = 1; } for (int i = 1; i <= r; i++) { for (int j = 1; j <= c; j++) printf("%c", loops[i][j]); printf("\n"); } return 0; }