#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
****************************************************************/