#include <bits/stdc++.h> using namespace std; char a[150][150]; int d[150][150]; int m,n; void fun(int dep,int i,int j){ if(dep < d[i][j]){ d[i][j] = dep; if(a[i-1][j] == '.') fun(dep+1,i-1,j); if(a[i+1][j] == '.') fun(dep+1,i+1,j); if(a[i][j-1] == '.') fun(dep+1,i,j-1); if(a[i][j+1] == '.') fun(dep+1,i,j+1); } } int main(){ int i,j; cin>>n>>m; for(i = 1;i <= n;i++){ for(j = 1;j <= m;j++){ cin>>a[i][j]; d[i][j] = INT_MAX; } } fun(1,1,1); cout<<d[n][m]<<endl; return 0; } /************************************************************** Problem: 1432 User: chenruhong Language: C++ Result: Accepted Time:27 ms Memory:2184 kb ****************************************************************/