#include <bits/stdc++.h>/*题目描述
指挥部被突来的洪水淹没了,还好指挥部有在某些重要的地方起一些围墙,用*号表示,而一个封闭的*号区域洪水是进不去的……现在给出指挥部的围墙建设图,问指挥部没被淹到的重要区域(由"0"表示)有多少。

输入
第一行是两个数,x和y(x,y<=500)
第二行及以下是一个由*和0组成的x*y的图。

输出
输出没被水淹没的指挥部的“0”的数量(计算被*围住的0的个数)。*/
using namespace std;
int n,m,fx[4]={0,0,1,-1},fy[4]={-1,1,0,0},sum=0;
char a[501][501];
void dfs(int x,int y){
	a[x][y]='k';
	for(int h=0;h<4;h++){
		int tx=x+fx[h];
		int ty=y+fy[h];
		if(tx<=n&&tx>=1&&ty<=m&&ty>=1&&a[tx][ty]=='0'){
			dfs(tx,ty);
		}
	}
}
int main(){
	cin>>n>>m;
	for(int j=1;j<=n;j++){
		for(int k=1;k<=m;k++)cin>>a[j][k];
	}
	for(int j=1;j<=n;j++){
		for(int k=1;k<=m;k++){
			if((j>1&&j<n)&&(k>1&&k<m)||a[j][k]=='*')continue;
			dfs(j,k);
		}
	}
	for(int j=1;j<=n;j++){
		for(int k=1;k<=m;k++){
			if(a[j][k]=='0')sum++;
		}
	}
	cout<<sum;
	return 0;
}

/**************************************************************
	Problem: 1913
	User: zhouhongyi
	Language: C++
	Result: Accepted
	Time:23 ms
	Memory:2320 kb
****************************************************************/