#include using namespace std; bool mapa[100][100]; int n, e; char makej(int i, int j, char hrac) { //cout << '[' << i << ',' << j << ',' << hrac << ']' << endl; // int x, y; char dalsi = (hrac=='A' ? 'B' : 'A'); // mapa[i][j] = false; // x = i+1; y = j; if(x >= 0 && x < n && y >= 0 && y < e && mapa[x][y]) { if(makej(x, y, dalsi) == hrac) { mapa[i][j] = true; return hrac; } } // x = i-1; y = j; if(x >= 0 && x < n && y >= 0 && y < e && mapa[x][y]) { if(makej(x, y, dalsi) == hrac) { mapa[i][j] = true; return hrac; } } // x = i; y = j+1; if(x >= 0 && x < n && y >= 0 && y < e && mapa[x][y]) { if(makej(x, y, dalsi) == hrac) { mapa[i][j] = true; return hrac; } } // x = i; y = j-1; if(x >= 0 && x < n && y >= 0 && y < e && mapa[x][y]) { if(makej(x, y, dalsi) == hrac) { mapa[i][j] = true; return hrac; } } // mapa[i][j] = true; return dalsi; } int main() { char znak; while(1) { cin >> n >> e; if(n == 0 && e == 0) break; for(int i = 0; i < n; i++) { for(int j = 0; j < e; j++) { cin >> znak; if(znak == 'X') mapa[i][j] = false; else mapa[i][j] = true; } } // for(int i = 0; i < n; i++) { for(int j = 0; j < e; j++) { if(mapa[i][j]) cout << makej(i, j, 'A'); else cout << 'X'; } cout << '\n'; } cout << '\n'; } return 0; }