#include<iostream>
using namespace std; #define MAX 210 int pawn[MAX][MAX]; int flag[MAX][MAX]; int fail[MAX][MAX]; int ok; int num; int adj[12]={1,0,1,1,0,-1,0,1,-1,-1,-1,0}; void input() { int i,j; char ch; for(i=1; i<=num; i++) { for(j=1; j<=num; j++) { cin>>ch; if(ch=='b') pawn[i][j]=1; else pawn[i][j]=-1; } } } void dfs(int x,int y) { int i; if(x<1||y<1||x>num||y>num) return; if(x==num||ok==1) { ok=1; return ; } for(i=0; i<12; i+=2) { if(fail[x+adj[i]][y+adj[i+1]]==0&&pawn[x+adj[i]][y+adj[i+1]]==1&&flag[x+adj[i]][y+adj[i+1]]==0) { flag[x+adj[i]][y+adj[i+1]]= 1; dfs(x+adj[i],y+adj[i+1]); flag[x+adj[i]][y+adj[i+1]]= 0; } if(ok==1) return ; fail[x+adj[i]][y+adj[i+1]] = 1; } fail[x][y] = 1; return ; } bool solve() { int i,j; ok = 0; i=1; for(j=1; j<=num; j++) { if(flag[i][j]==0&&fail[i][j]==0&&pawn[i][j]==1) { flag[i][j]=1; dfs(i,j); flag[i][j]=0; } if(ok==1) return true; } return false; } int main() { int c_num; c_num=0; while(cin>>num&&num) { c_num++; memset(pawn,0,sizeof(pawn)); memset(flag,0,sizeof(flag)); memset(fail,0,sizeof(fail)); input(); cout<<c_num; if(solve()) cout<<" B"<<endl; else cout<<" W"<<endl; } return 0; } |