#include <iostream>
#include <stack>
using namespace std;
typedef pair<int, int> P;
int n, m;
int sum;
char xq[501][501];
int vis[501][501];
int x[4] = { 1, -1, 0, 0 };
int y[4] = { 0, 0, -1, 1 };
void dfs(int i, int j) {
stack<P> a;
a.push(P(i, j));
xq[i][j] = '1';
while (!a.empty()) {
P p = a.top();
a.pop();
xq[p.first][p.second] = '1';
for (int ii = 0; ii < 4; ii++) {
int xx = p.first + x[ii];
int yy = p.second + y[ii];
if (xx >= 0 && xx < n && yy >= 0 && yy < m && xq[xx][yy] == '0') {
a.push(P(xx, yy));
}
}
}
}
int main() {
cin >> n >> m;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> xq[i][j];
}
}
for (int i = 0; i < n; i++) {
if (i == 0 || i == n - 1) {
for (int j = 0; j < n; j++) {
if (xq[i][j] == '0')
dfs(i, j);
}
}
else {
if (xq[i][0] == '0')
dfs(i, 0);
if (xq[i][m - 1] == '0')
dfs(i, m - 1);
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (xq[i][j] == '0') sum++;
}
}
cout << sum << endl;
return 0;
}