#include<bits/stdc++.h>
using namespace std;
int dx[4]={0,0,-1,1},dy[4]={-1,1,0,0};
int a[2010][2010],v[2010][2010];
int n,m,ex,ey;
void dfs(int x,int y,int ans)
{
if(x==ex && y==ey)
{
printf("%d",ans);
exit(0);
}
for(int i=0;i<4;i++)
{
int xx=x+dx[i],yy=y+dy[i];
if(xx<=n && xx>=1 && yy<=m && yy>=1 && a[xx][yy]==0 && v[xx][yy]==0)
{
v[xx][yy]=1;
dfs(xx,yy,ans+1);
}
}
}
int main()
{
scanf("%d %d",&n,&m);
int sx,sy;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
char c;
cin>>c;
if(c=='#')
a[i][j]=1;
else if(c=='d')
ex=i,ey=j;
else if(c=='m')
sx=i,sy=j;
}
}
v[sx][sy]=1;
dfs(sx,sy,0);
return 0;
}
ps:先别管有没有 No way