#include #include #include #include #define MAX_N 200 #define MAXMAX 2000000000 int R,C; char buff[MAX_N][MAX_N]; int len[17][MAX_N][MAX_N]; int Q[17][MAX_N*MAX_N * 17][2]; int p[17],k[17]; int conv(char a) { if(a=='B') return 8; if(a=='Y') return 4; if(a=='R') return 2; if(a=='G') return 1; if(a=='#') return 16; if(a=='.') return 0; if(a=='b') return 8; if(a=='y') return 4; if(a=='r') return 2; if(a=='g') return 1; if(a=='*') return 0; if(a=='X') return 0; return 0; } void one(int nx,int ny,int ox,int oy,int i) { if(nx>=0 && ny>=0 && nxlen[i][ox][oy]+1) { len[newP][nx][ny]=len[i][ox][oy]+1; Q[ newP ][ k[newP] ][0]=nx; Q[ newP ][ k[newP] ][1]=ny; k[newP]++; } } else if(val!='#' && (!isupper(val) || (conv(val) & i) == conv(val) )) { //printf("%d %d %d %d\n",nx,ny,ox,oy); if(len[i][nx][ny]>len[i][ox][oy]+1) { len[i][nx][ny]=len[i][ox][oy]+1; Q[ i ][ k[ i ] ][0]=nx; Q[ i ][ k[ i ] ][1]=ny; k[ i ]++; } } } } void solve() { int x,y; for(int i1=0;i1=0) printf("Escape possible in %d steps.\n",small); else printf("The poor student is trapped!\n"); } int main() { char buffeee[10]; while(1) { scanf("%d %d",&R,&C); if(R==0 && C==0) return 0; for(int i=0;i