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