#include #include #include #include using namespace std; struct pos{ int x,y,level,turns; }; int main(){ int R,C; while(1){ cin>>R>>C; if (R==0 && C==0) return 0; vector tmp(C+2,-1); vector > ttmp(R+2,tmp); vector > > Map (16,ttmp); char c; int startx=-1,starty=-1; for (int x=0;x>c; // cout<<"read: "<>c; } /* struct pos{ int x,y,level,turns; }; */ pos curpos,newpos; queue Q; curpos.x=startx; curpos.y=starty; curpos.level=0; curpos.turns=0; Q.push(curpos); bool finish=false; while(!Q.empty()){ curpos = Q.front(); // cout<0){ int d=Map[curpos.level][curpos.y][curpos.x]; Map[curpos.level][curpos.y][curpos.x]=-1; curpos.level=d; } if (Map[curpos.level][curpos.y][curpos.x]==0){ newpos=curpos; newpos.turns++; newpos.x++; Q.push(newpos); newpos.x-=2; Q.push(newpos); newpos.x++; newpos.y--; Q.push(newpos); newpos.y+=2; Q.push(newpos); } Map[curpos.level][curpos.y][curpos.x]=-1; } if (finish==false){ cout<<"The poor student is trapped!"<