#include <cstdio>
#include <cstdlib>
#include <cstring>
#define N 200
#define BLACK 'b'
#define WHITE 'w'
char table[N+1][N+1];
int visit[N+1][N+1];
int n,numLine;
int dfs(int row, int col)
{
int result=0;
//끝노드에 도달할경우 1을 리턴
if(row == numLine){
return 1;
}
//움직일 수 있는 곳이 있으면 해당 노드를 방문
if(!visit[row-1][col-1]&&table[row-1][col-1]==BLACK){
visit[row-1][col-1]=1;
result += dfs(row-1,col-1);
}if(!visit[row-1][col]&&table[row-1][col]==BLACK){
visit[row-1][col]=1;
result += dfs(row-1,col);
}if(!visit[row][col-1]&&table[row][col-1]==BLACK){
visit[row][col-1]=1;
result += dfs(row,col-1);
}if(!visit[row][col+1]&&table[row][col+1]==BLACK){
visit[row][col+1]=1;
result += dfs(row,col+1);
}if(!visit[row+1][col]&&table[row+1][col]==BLACK){
visit[row+1][col]=1;
result += dfs(row+1,col);
}if(!visit[row+1][col+1]&&table[row+1][col+1]==BLACK){
visit[row+1][col+1]=1;
result += dfs(row+1,col+1);
}
return result;
}
int solve()
{
int num;
//Black으로 체크
for(int i=1; i<=numLine; i++){
if(table[1][i] == BLACK){
memset(visit,0,sizeof(int)*(N+1)*(N+1));
if(num=dfs(1,i)){
return 1;
}
}
}
return 0;
}
int main(){
int num=1;
while(scanf("%d",&numLine)&&numLine){
for(int i=1; i<=numLine;i++){
scanf("%s",table[i]+1);
}
solve() ? printf("%d B\n",num) : printf("%d W\n",num);
num++;
}
return 0;
}




최근 덧글