#include<bits/stdc++.h>
using namespace std;
struct node
{
int x,y;
};
char maps[101][101];
int vis[101][101];
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
queue<node> q;
int main()
{
int n,m;
int tot=0;
cin>>n>>m;
for(int i=1;i<n;i++)
{
for(int j=1;j<m;j++)
{
cin>>maps[i][j];
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(maps[i][j]=='0')
{
continue;
}
node t=node{i,j};
q.push(t);
while(!q.empty())
{
node c=q.front();
q.pop();
for(int k=0;k<4;k++)
{
int nx=c.x+dx[k];
int ny=c.y+dy[k];
if(nx<1||nx>n||ny<1||ny>m||maps[i][j]=='0'||vis[nx][ny]==1)
{
continue;
}
tot++;
vis[i][j]=1;
if(vis[nx][ny]==0)
{
vis[nx][ny]=1;
node y=node{nx,ny};
q.push(y);
} }
}
}
}
cout<<tot<<endl;
return 0;
}