#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define DEBUG(x) cout << '>' << #x << ':' << x << endl; #define FOR(i, b) for (int i = 0; i < (b); ++i) #define FOR2(i, a, b) for (int i = (a); i > (b); --i) inline bool EQ(double a, double b) { return fabs(a-b) < 1e-9; } const int INF = 1<<29; typedef long long ll; #define MAXN 111 int N,M,A,B; char m[MAXN][MAXN],res[MAXN][MAXN]; bool get(int x,int y){ if(x<0||y<0||x==N||y==M||m[x][y]!='.') return true; m[x][y]='#'; bool res=!get(x-1,y)||!get(x+1,y)||!get(x,y-1)||!get(x,y+1); m[x][y]='.'; return res; } int main() { int i,j; while(true){ scanf("%d%d",&N,&M); if(N+M==0) break; FOR(i,N) scanf("%s",m[i]); FOR(i,N){ FOR(j,M){ if(m[i][j]=='.'){ if(get(i,j)) res[i][j]='A'; else res[i][j]='B'; } else res[i][j]='X'; } res[i][M]='\0'; } FOR(i,N) printf("%s\n",res[i]); printf("\n"); } return 0; }