#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int n,m; char g[110][110]; int a[110][110]; int sx,sy; int k; int dp[110][110][32]; int px[10],py[10]; struct Node { int x,y; int s; Node(int _x = 0,int _y = 0,int _s = 0) { x = _x; y = _y; s = _s; } }; int mo[][2] = {{0,1},{0,-1},{1,0},{-1,0}}; int bfs() { queueq; int s = 0; for(int i = 0;i < k;i++) if(sx == px[i] && sy == py[i]) s = s|(1<= n || ny < 0 || ny >= m)continue; if(a[nx][ny] == -2)continue; for(int j = 0;j < k;j++) if(nx == px[j] && ny == py[j]) { s |= (1<