#include #include #include #include #include using namespace std; typedef pair pii; typedef struct{ int x; int y; }dir; dir D[]={ {0,-1},{0,1}, {-1,0},{1,0}, }; int manhattan(const pii &a,const pii &b){ return abs(a.first-b.first)+abs(a.second-b.second); } int main(){ int W,H; cin>>W>>H; vectorv(H); for(int i=0;i>v[i]; vector >lst; for(int i=0;i se={{i,j}}; queue q; for(q.push({i,j});!q.empty();){ pii cur=q.front();q.pop(); for(auto &d:D){ pii nxt={cur.first+d.y,cur.second+d.x}; if(0<=nxt.first&&nxt.first