#include<bits/stdc++.h>
using namespace std;
int n,ans;
bool po=false;
char s[121][121];  
int a[400][2];   
int z=0,k,l,m,o,p,q=1; 
int dx[4]={0,-1,0,1};
int dy[4]={-1,0,1,0};
//void aaa() {
//    for (int i=0;i<z;i++) {
//        if (i!=0) cout<<"->";
//        cout<<"("<<a[i][0]<<","<<a[i][1]<< ")";
//    }
//    cout<<endl;
//}
void dfs(int x,int y) {
    if (x==n&&y==m) {
        po=true;
        ans=q;
        return;
    }
    s[x][y]='#';
    for (int i=0;i<4;i++) {
        int tx=x+dx[i];
        int ty=y+dy[i];
        if (tx>=1&&tx<=n&&ty>=1&&ty<=n&&s[tx][ty]=='.') {
        	q++;
        	dfs(tx,ty);
            q--;
        }
    }
    s[x][y]='.';
   return;
}
int main() {
//    scanf("%d%d",&n,&m);
cin>>n>>m;
    for (int i=1;i<=n;i++) {
        for (int j=1;j<=m;j++) {
            cin>>s[i][j];
        }
    }
    dfs(1,1);
    if(po){
    	cout<<ans;
	}else{
		cout<<1;
	}
    return 0;
}
/**************************************************************
	Problem: 1432
	User: zhengzihao
	Language: C++
	Result: Time Limit Exceed
****************************************************************/