#include <cstdio>
#include <cstring>

const int dx[] = { 1, 0, -1, 0 };
const int dy[] = { 0, 1, 0, -1 };

int R, S;
char m[ 11 ][ 11 ];
int mark[ 11 ][ 11 ];
int bio[ 11 ][ 11 ], cookie;

int go( int x, int y ) {
   if( m[x][y] == '#' ) return 0;
   if( x == R-1 && y == S-1 ) return 1;
   mark[x][y] = 1;
   
   int ret = 0;
   
   for( int i = 0; i < 4; ++i ) {
      int nx = x + dx[i];
      int ny = y + dy[i];
      if( nx < 0 || nx >= R ) continue;
      if( ny < 0 || ny >= S ) continue;
      if( mark[nx][ny] || m[nx][ny] == '#' ) continue;
      ret += go( nx, ny );
   }
   
   mark[x][y] = 0;
   return ret;
}

int main( void )
{
   scanf( "%d%d", &R, &S );
   
   for( int i = 0; i < R; ++i )
      scanf( "%s", m[i] );
   
   printf( "%d\n", go( 0, 0 ) );
   
   return 0;
}
