/*
#include<stdio.h>
int main()
{
int n, i;
int arr[10001]={};
scanf("%d", &n);
for(i=0; i<n; i++){
scanf("%d", &arr[i]);
}
for(i=n-1; i>=0; i--){
printf("%d ", arr[i]);
}
}
#include<stdio.h>
char str[31][31]={};
int dx[5]={0, 1, 0, -1};
int dy[5]={-1, 0, 1, 0};
int direction(int x, int y)
{
int i;
for(i=0; i<4; i++){
if(str[x+dx[i]][y+dy[i]]=='1'){
return i;
}
}
}
void dfs(int x, int y, int d)
{
int i, c=0;
for(i=0; i<4; i++){
if(i==d){
continue;
}
if(str[x+dx[i]][y+dy[i]]=='1'){
c++;
}
}
if(c==0){
str[x][y]='0';
}
if(str[x+dx[d]][y+dy[d]]=='1'){
dfs(x+dx[d], y+dy[d], d);
}
}
int main()
{
int x, y, i, j, cnt=0;
char o;
scanf("%d%d", &x, &y);
for(i=1; i<=x; i++){
for(j=1; j<=y; j++){
scanf("%c", &str[i][j]);
}
scanf("%c", &o);
}
for(i=1; i<=x; i++){
for(j=1; j<=y; j++){
if(str[i][j]=='1'){
dfs(i, j, direction(i, j));
cnt++;
}
}
}
for(i=1; i<=x; i++){
for(j=1; j<=y; j++){
printf("%c", str[i][j]);
}
}
printf("%d", cnt);
}
*/
#include<stdio.h>
char str[31][31]={};
int dx[5]={0, 1, 0, -1};
int dy[5]={-1, 0, 1, 0};
int direction(int x, int y)
{
int i;
for(i=0; i<4; i++){
if(str[x+dx[i]][y+dy[i]]=='1'){
return i;
}
}
}
void dfs(int x, int y, int d)
{
int i, c=0;
for(i=0; i<4; i++){
if(i==d||i==d+2){
continue;
}
if(str[x+dx[i]][y+dy[i]]=='1'){
c++;
}
}
if(c==0){
str[x][y]='0';
}
if(str[x+dx[d]][y+dy[d]]=='1'){
dfs(x+dx[d], y+dy[d], d);
}
}
int main()
{
int x, y, i, j, cnt=0;
char o;
scanf("%d%d", &x, &y);
for(i=1; i<=x; i++){
for(j=1; j<=y; j++){
scanf("%c", &str[i][j]);
}
scanf("%c", &o);
}
for(i=1; i<=x; i++){
for(j=1; j<=y; j++){
if(str[i][j]=='1'){
dfs(i, j, direction(i, j));
cnt++;
}
}
}
printf("%d", cnt);
}