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