#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
typedef pair<int, int>PII;
const int N = 2510;
int n, m;
char g[N][N];
int gi[N][N];
int dx[4] = { 0,-1,1,0 }, dy[4] = { 1,0,0,-1 };
void flood_fill(int sx, int sy) {
queue<PII>q;
q.push({ sx, sy });
while (q.size()) {
auto t = q.front();
q.pop();
for (int i = 0; i < 4; i++)
{
gi[t.first][t.second] = 0;
int a = t.first + dx[i], b = t.second + dy[i];
if (gi[a][b] == 2) {
q.push({ a,b });
}
}
}
}
int main() {
cin >> n >> m;
for(int i=1;i<=n;i++)
for (int j = 1; j <= m; j++) {
cin >> g[i][j];
}
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++) {
if (g[i][j] == '0')gi[i][j] = 0;
else gi[i][j] = 1;
}
for (int i = 0; i <= n + 1; i++)
for (int j = 0; j <= m + 1; j++)
if (gi[i][j] == 0)gi[i][j] =2;
flood_fill(0, 0);
int cnt = 0;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
if (gi[i][j] == 2)cnt++;
}
cout << cnt << endl;
return 0;
}