/*#include<stdio.h>
int n;
int arr[100];
void quicksort(int left, int right)
{
if(left>=right){
return;
}
int temp;
int pivot=arr[right];
int i=left-1;
for(int j=left; j<right; j++){
if(arr[j]<pivot){
i++;
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
temp=arr[i+1];
arr[i+1]=arr[right];
arr[right]=temp;
quicksort(left, i);
quicksort(i+2, right);
}
int main()
{
int i;
scanf("%d", &n);
for(i=0; i<n; i++){
scanf("%d", &arr[i]);
}
quicksort(0, n-1);
for(i=0; i<n; i++){
printf("%d ", arr[i]);
}
return 0;
}
#include<stdio.h>
int n, r;
void f(char a)
{
for(i=0; i<; i++){
}
f(a);
}
int main()
{
int i, j, m;
int arr[500];
scanf("%d %d", &n, &r);
f('A');
}*/
#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(d==0&&i==0||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);
}