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