#include #include //#include const int maxn=205; int mp[maxn][maxn]; char s[maxn]; const int dx[]={0,0,-1,1}; const int dy[]={-1,1,0,0}; int H,W; #define set(a,b,c,d) mp[i][j<<2]=a,mp[i][(j<<2)+1]=b,mp[i][(j<<2)+2]=c,mp[i][(j<<2)+3]=d; void init() { for(int i=0;i=H||x<0||x>=W) return; if(mp[y][x]==-1||mp[y][x]!=co) return; mp[y][x]=-1; for(int i=0;i<4;i++) dfs1(y+dy[i],x+dx[i],co); } int dfs2(int y,int x) { if(y<0||y>=H||x<0||x>=W) return 0; if(mp[y][x]==-1) return 0; int res=0; if(mp[y][x]==1) { mp[y][x]=-1; for(int i=0;i<4;i++) res+=dfs2(y+dy[i],x+dx[i]); } else { // printf("\t\t\tfound zero! at x=%d y=%d\n",x,y); dfs1(y,x,0); return 1; } return res; } int cnt; void print() { for(int i=0;i0) putchar('A'); while(D-->0) putchar('D'); while(J-->0) putchar('J'); while(K-->0) putchar('K'); while(S-->0) putchar('S'); while(w-->0) putchar('W'); printf("\n"); } int main() { while(scanf("%d%d",&H,&W)==2&&H&&W) { init(); solve(); } return 0; }