#include <iostream>
#include <vector>
using namespace std;
int x, y;
vector<vector<char>> g;
vector<vector<bool>> v;
int dx[] = {-1, 1, 0, 0};
int dy[] = {0, 0, -1, 1};
void dfs(int i, int j) {
if (i < 0 || i >= x || j < 0 || j >= y) return;
if (v[i][j] || g[i][j] == '*') return;
v[i][j] = true;
for (int k = 0; k < 4; k++) {
dfs(i + dx[k], j + dy[k]);
}
}
int main() {
cin >> x >> y;
g.resize(x, vector<char>(y));
v.resize(x, vector<bool>(y, false));
for (int i = 0; i < x; i++) {
for (int j = 0; j < y; j++) {
cin >> g[i][j];
}
}
for (int i = 0; i < x; i++) {
if (g[i][0] == '0' && !v[i][0]) dfs(i, 0);
if (g[i][y-1] == '0' && !v[i][y-1]) dfs(i, y-1);
}
for (int j = 0; j < y; j++) {
if (g[0][j] == '0' && !v[0][j]) dfs(0, j);
if (g[x-1][j] == '0' && !v[x-1][j]) dfs(x-1, j);
}
int cnt = 0;
for (int i = 0; i < x; i++) {
for (int j = 0; j < y; j++) {
if (g[i][j] == '0' && !v[i][j]) {
cnt++;
}
}
}
cout << cnt << endl;
return 0;
}
/**************************************************************
Problem: 1913
User: caizhihao
Language: C++
Result: Accepted
Time:28 ms
Memory:2212 kb
****************************************************************/