#include<iostream>
#include<queue>
#include<cstring>
using namespace std;
int nxt[4][2]= {{1,0},{-1,0},{0,1},{0,-1}};
queue <pair<int,int> > q;
int visit[35][35];
char maze[35][35];
int main() {
int m,n;
cin>>m>>n;
for(int i=1; i<=m; i++) {
for(int j=1; j<=n; j++) {
cin>>maze[i][j];
}
}
visit[0][0]=1;
q.push(make_pair(0,0));
while(!q.empty()) {
int xx=q.front().first;
int yy=q.front().second;
q.pop();
for(int i=0; i<4; i++) {
int tx=xx+nxt[i][0];
int ty=yy+nxt[i][1];
if(visit[tx][ty] || tx<0 || ty<0 || tx>n+1 || ty>n+1 || maze[tx][ty]=='*') {
continue;
} else {
visit[tx][ty]=1;
q.push(make_pair(tx,ty));
}
}
}
int tot;
for(int i=1; i<=m; i++) {
for(int j=1; j<=n; j++) {
if(maze[i][j]!='*' && !visit[i][j]) {
tot++;
}
}
}
cout<<tot;
return 0;
}