#include<stdio.h>
#include<set>
#include<vector>
#include<unordered_map>
#include<algorithm>
#include<cstring>

using namespace std;

int n,m;
int D[105][105];
char A[105][105];

int main () {
	
	#ifndef ONLINE_JUDGE
	freopen("a.in","r",stdin);
	freopen("a.out","w",stdout);
	#endif
	
	scanf("%d %d\n",&n,&m);
	for ( int i = 1 ; i <= n ; ++i ){
		scanf("%s",A[i]+1);
	}
	
	for ( int i = n ; i >= 1 ; --i ){
		for ( int j = m ; j >= 1 ; --j ){
			if ( A[i][j] != '.' )	continue ;
			D[i][j] = 1+max(D[i+1][j],D[i][j+1]);
		}
	}
	
	printf("%d\n",D[1][1]);
	
	return 0;
}