#include<bits/stdc++.h>
using namespace std;
char mapp[510][510];
bool vis[510][510];
int m,n;
int dx[8]={0,0,-1,0,1};
int dy[8]={0,-1,0,1,0};
struct node{
int x,y;
};
queue<node>q;
void bfs()
{
while(q.size()!=0)
{
node aa;
aa=q.front();
for(int i=1;i<=4;i++)
{
int X=aa.x+dx[i];
int Y=aa.y+dy[i];
if(X<0||X>m||Y<0||Y>n) continue;
if(vis[X][Y]==1) continue;
if(mapp[X][Y]=='*') continue;
vis[X][Y]=1;
mapp[X][Y]='1';
node aaa;
aaa.x=X,aaa.y=Y;
q.push(aaa);
}
q.pop();
}
}
int main()
{
cin>>m>>n;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
cin>>mapp[i][j];
}
}
node a;
a.x=0,a.y=0;
vis[0][0]=1;
mapp[0][0]='1';
q.push(a);
bfs();
int sum=0;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
if(mapp[i][j]=='0') sum++;
}
}
cout<<sum;
return 0;
}