#include<iostream>
#include<vector>
using namespace std;
const int dx[] = {0,1,0,-1};
const int dy[] = {1,0,-1,0};
int n,m;
char graph[510][510];
bool vis[510][510];
void dfs(int x,int y){
for(int i = 0; i < 4; i ++){
int xx = x + dx[i];
int yy = y + dy[i];
if(xx >= 1 && xx <= n && yy >= 1 && yy <= m && !vis[xx][yy]){
vis[xx][yy] = 1;
dfs(xx,yy);
}
}
}
int main(){
cin >> n >> m;
for(int i = 1; i <= n; i ++){
for(int j = 1; j <= m; j ++){
cin >> graph[i][j];
if(graph[i][j] == '*') vis[i][j] = true;
}
}
for(int i = 1; i <= n; i ++){
if(!vis[i][1]) dfs(i,1);
if(!vis[i][n]) dfs(i,n);
}
for(int j = 1; j <= m; j ++){
if(!vis[j][1]) dfs(j,1);
if(!vis[j][m]) dfs(j,m);
}
int ans = 0;
for(int i = 1; i <= n; i ++){
for(int j = 1; j <= m; j ++){
if(!vis[i][j]) ans ++;
}
}
cout << ans << endl;
return 0;
}