#include <bits/stdc++.h>
using namespace std;
int n, m;
void dfs(vector<vector<int>> &s, vector<vector<int>> &b, int sx, int sy)
{
int dir[4][2] = {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};
b[sx][sy] = 2;
for (int i = 0; i < 4; i++)
{
int tx = sx + dir[i][0];
int ty = sy + dir[i][1];
if (tx >= 1 && tx <= n &&ty >= 1 && ty <= m && b[tx][ty]==0 && s[tx][ty]==0)
{
b[tx][ty] = 2;
dfs(s, b, tx, ty);
}
}
}
int main()
{
cin >> n >> m;
vector<vector<int>> s(n + 1, vector<int>(m + 1, 0));
vector<vector<int>> b(n + 1, vector<int>(m + 1, 0));
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
char ch;
ch = getchar();
while (ch == ' ' || ch == '\n')
{
ch = getchar();
}
if (ch == '0')
{
s[i][j] = 0;
}
else if (ch == '*')
{
s[i][j] = 1;
}
}
}
for (int i = 1; i <= m; i++)
{
if (s[1][i]==0)
dfs(s, b, 1, i);
if (s[n][i]==0)
dfs(s, b, n, i);
}
for (int j = 1; j <= n; j++)
{
if (s[j][1]==0)
dfs(s, b, j, 1);
if (s[j][m]==0)
dfs(s, b, j, m);
}
int cnt=0;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{if(b[i][j]==0&&s[i][j]==0)
cnt++;
}
}
cout<<cnt;
}