#include <bits/stdc++.h>
#define ll long long
#define go ios::sync_with_stdio(0), cin.tie(0), cout.tie(0)
using namespace std;
char getNextState(char currState)
{
if (currState == 'B')
return 'W';
return 'B';
}
int const N = 110;
int n, m;
char maze[N][N];
bool visited[N][N];
void dfs(int x, int y, char state)
{
if (x >= n || x < 0 || y >= m || y < 0)
return;
if (visited[x][y])
{
return;
}
visited[x][y] = true;
if (maze[x][y] == '-')
return;
maze[x][y] = state;
int i[] = {1, -1, 0, 0};
int j[] = {0, 0, 1, -1};
for (int k = 0; k < 4; k++)
{
dfs(x + i[k], y + j[k], getNextState(state));
}
}
void solve()
{
cin >> n >> m;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cin >> maze[i][j];
}
}
for (int x = 0; x < n; x++)
{
for (int y = 0; y < m; y++)
{
if (!visited[x][y])
dfs(x, y, 'B');
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cout << maze[i][j];
}
cout << "\n";
}
}
int main()
{
int t = 1;
// cin>>t;
// go;
while (t--)
{
solve();
cout << "\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZ28gaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCksIGNpbi50aWUoMCksIGNvdXQudGllKDApCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNoYXIgZ2V0TmV4dFN0YXRlKGNoYXIgY3VyclN0YXRlKQp7CiAgICBpZiAoY3VyclN0YXRlID09ICdCJykKICAgICAgICByZXR1cm4gJ1cnOwogICAgcmV0dXJuICdCJzsKfQppbnQgY29uc3QgTiA9IDExMDsKaW50IG4sIG07CmNoYXIgbWF6ZVtOXVtOXTsKYm9vbCB2aXNpdGVkW05dW05dOwp2b2lkIGRmcyhpbnQgeCwgaW50IHksIGNoYXIgc3RhdGUpCnsKICAgIGlmICh4ID49IG4gfHwgeCA8IDAgfHwgeSA+PSBtIHx8IHkgPCAwKQogICAgICAgIHJldHVybjsKICAgIGlmICh2aXNpdGVkW3hdW3ldKQogICAgewogICAgICAgIHJldHVybjsKICAgIH0KICAgIHZpc2l0ZWRbeF1beV0gPSB0cnVlOwogICAgaWYgKG1hemVbeF1beV0gPT0gJy0nKQogICAgICAgIHJldHVybjsKICAgIG1hemVbeF1beV0gPSBzdGF0ZTsKICAgIGludCBpW10gPSB7MSwgLTEsIDAsIDB9OwogICAgaW50IGpbXSA9IHswLCAwLCAxLCAtMX07CiAgICBmb3IgKGludCBrID0gMDsgayA8IDQ7IGsrKykKICAgIHsKICAgICAgICBkZnMoeCArIGlba10sIHkgKyBqW2tdLCBnZXROZXh0U3RhdGUoc3RhdGUpKTsKICAgIH0KfQp2b2lkIHNvbHZlKCkKewogICAgY2luID4+IG4gPj4gbTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbTsgaisrKQogICAgICAgIHsKICAgICAgICAgICAgY2luID4+IG1hemVbaV1bal07CiAgICAgICAgfQogICAgfQogICAgZm9yIChpbnQgeCA9IDA7IHggPCBuOyB4KyspCiAgICB7CiAgICAgICAgZm9yIChpbnQgeSA9IDA7IHkgPCBtOyB5KyspCiAgICAgICAgewogICAgICAgICAgICBpZiAoIXZpc2l0ZWRbeF1beV0pCiAgICAgICAgICAgICAgICBkZnMoeCwgeSwgJ0InKTsKICAgICAgICB9CiAgICB9CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgIHsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG07IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQgPDwgbWF6ZVtpXVtqXTsKICAgICAgICB9CiAgICAgICAgY291dCA8PCAiXG4iOwogICAgfQp9CgppbnQgbWFpbigpCnsKICAgIGludCB0ID0gMTsKICAgIC8vIGNpbj4+dDsKICAgIC8vIGdvOwogICAgd2hpbGUgKHQtLSkKICAgIHsKICAgICAgICBzb2x2ZSgpOwogICAgICAgIGNvdXQgPDwgIlxuIjsKICAgIH0KICAgIHJldHVybiAwOwp9