#include <bits/stdc++.h>
using namespace std;
int dx[] = {1, 1, 0, -1, -1, -1, 0, 1};
int dy[] = {0, -1, -1, -1, 0, 1, 1, 1};
int dir[4][4] = {
{6, 6, 5, 6},
{7, 7, 5, 4},
{0, 2, 2, 2},
{1, 0, 4, 3},
};
bool color[4][4];
bool check() {
for(int i = 0; i < 4; i++)
for(int j = 0; j < 4; j++) {
int ii = i+dy[dir[i][j]], jj = j+dx[dir[i][j]], b = 0, w = 0;
while(ii >= 0 && ii < 4 && jj >= 0 && jj < 4) {
if(color[ii][jj])
w++;
else
b++;
ii+=dy[dir[i][j]];
jj+=dx[dir[i][j]];
}
if(!((color[i][j] && (w == 1)) || (!color[i][j] && (b == 2))))
return false;
}
return true;
}
int main() {
for(int icolor = 0; icolor < (1<<16); icolor++) {
int tmp = icolor;
for(int i = 0; i < 4; i++)
for(int j = 0; j < 4; j++) {
color[i][j] = (tmp%2);
tmp >>= 1;
}
if(check()) {
for(int i = 0; i < 4; i++) {
for(int j = 0; j < 4; j++)
cout << (color[i][j]?"W":"B") << " ";
cout << endl;
}
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgZHhbXSA9IHsxLCAxLCAwLCAtMSwgLTEsIC0xLCAwLCAxfTsKaW50IGR5W10gPSB7MCwgLTEsIC0xLCAtMSwgMCwgMSwgMSwgMX07CmludCBkaXJbNF1bNF0gPSB7Cgl7NiwgNiwgNSwgNn0sCgl7NywgNywgNSwgNH0sCgl7MCwgMiwgMiwgMn0sCgl7MSwgMCwgNCwgM30sCn07CmJvb2wgY29sb3JbNF1bNF07Cgpib29sIGNoZWNrKCkgewoJZm9yKGludCBpID0gMDsgaSA8IDQ7IGkrKykKCQlmb3IoaW50IGogPSAwOyBqIDwgNDsgaisrKSB7CgkJCWludCBpaSA9IGkrZHlbZGlyW2ldW2pdXSwgamogPSBqK2R4W2RpcltpXVtqXV0sIGIgPSAwLCB3ID0gMDsKCQkJd2hpbGUoaWkgPj0gMCAmJiBpaSA8IDQgJiYgamogPj0gMCAmJiBqaiA8IDQpIHsKCQkJCWlmKGNvbG9yW2lpXVtqal0pCgkJCQkJdysrOwoJCQkJZWxzZQoJCQkJCWIrKzsKCQkJCWlpKz1keVtkaXJbaV1bal1dOwoJCQkJamorPWR4W2RpcltpXVtqXV07CgkJCX0KCQkJaWYoISgoY29sb3JbaV1bal0gJiYgKHcgPT0gMSkpIHx8ICghY29sb3JbaV1bal0gJiYgKGIgPT0gMikpKSkKCQkJCXJldHVybiBmYWxzZTsKCQl9CglyZXR1cm4gdHJ1ZTsKfQoKaW50IG1haW4oKSB7Cglmb3IoaW50IGljb2xvciA9IDA7IGljb2xvciA8ICgxPDwxNik7IGljb2xvcisrKSB7CgkJaW50IHRtcCA9IGljb2xvcjsKCQlmb3IoaW50IGkgPSAwOyBpIDwgNDsgaSsrKQoJCQlmb3IoaW50IGogPSAwOyBqIDwgNDsgaisrKSB7CgkJCQljb2xvcltpXVtqXSA9ICh0bXAlMik7CgkJCQl0bXAgPj49IDE7CgkJCX0KCQlpZihjaGVjaygpKSB7CgkJCWZvcihpbnQgaSA9IDA7IGkgPCA0OyBpKyspIHsKCQkJCWZvcihpbnQgaiA9IDA7IGogPCA0OyBqKyspCgkJCQkJY291dCA8PCAoY29sb3JbaV1bal0/IlciOiJCIikgPDwgIiAiOwoJCQkJY291dCA8PCBlbmRsOwoJCQl9CgkJfQoJfQoJCglyZXR1cm4gMDsKfQ==