if(x >= 0 && x
Point t;
t.x = x;
t.y = y;
t.time = hd.time + 1;
if(map[x][y] == 'x') t.time ++;
if(t.time < mintime[x][y]){
mintime[x][y] = t.time;
Q.push(t);
}
}
}
}
return mintime[ax][ay];
}
int main() {
while(scanf("%d %d", &N,&M) != EOF){
for(int i=0; i
int sx,sy;
Point start;
for(int i=0; i
if(map[i][j] == 'a'){
ax = i;
ay = j;
}else if(map[i][j] == 'r'){
sx = i;
sy = j;
}
}
}
start.x = sx;
start.y = sy;
start.time = 0;
mintime[sx][sy] = 0;
int mint = bfs(start);
if(mint < INF)
printf("%d\n",mint);
else
printf("Poor ANGEL has to stay in the prison all his life.\n");
}
return 0;
}