#include #include using namespace std; int w,h; char g[52][52]; int seen[52][52]; static int dirs[]={-1,0,1,0,0,-1,0,1}; void output() { for (int y=0;y=w||y<0||y>=h) return 0; if (seen[x][y]) return 0; if (g[x][y]!='.'&&g[x][y]!=op) return -1; if (g[x][y]==op) { meet=1; return 0; } seen[x][y]=1; int res=1; int out=0; for (int i=0;i<4;++i) { int nx=x+dirs[2*i],ny=y+dirs[2*i+1]; int r=dfs(nx,ny,op,meet); if (r==-1) out=1; res+=r; } if (out==1) return -1; else return res; } int main() { while(scanf("%d%d",&w,&h),w|h) { for (int i=0;i