#include using namespace std; queue,int>> que; void push_que(int x,int y,int cnt){ que.push(make_pair(make_pair(x+1,y),cnt+1)); que.push(make_pair(make_pair(x-1,y),cnt+1)); que.push(make_pair(make_pair(x,y+1),cnt+1)); que.push(make_pair(make_pair(x,y-1),cnt+1)); } int main(){ int R,C; cin>>R>>C; swap(R,C); int sy,sx,gy,gx; cin>>sy>>sx>>gy>>gx; sx--;sy--;gx--;gy--; //swap(sx,sy); //swap(gx,gy); string s[R]; for(int i=0;i>s[i]; } vector> mini(C,vector(R,-1));//mini[x][y]; mini[sx][sy]=0; push_que(sx,sy,0); while(true){ if(que.size()==0)break; pair,int> a = que.front(); que.pop(); int x = a.first.first; int y = a.first.second; int c = a.second; if(x<0||x>=C)continue; if(y<0||y>=R)continue; if(s[y][x]=='#')continue; if(mini[x][y]!=-1)continue; mini[x][y]=c; push_que(x,y,c); } cout<