#include <stdio.h>

void del(int,int,int,int);

int map[50][50];

int main(){
  int i,j,w,h,cnt;
  while(1){
    for(i=0;i<50;i++){
      for(j=0;j<50;j++)map[i][j]=0;
    }
    cnt=0;
    scanf("%d%d",&w,&h);
    if(w==0&&h==0)break;
    for(i=0;i<h;i++){
      for(j=0;j<w;j++){
	scanf("%d",&map[i][j]);
      }
    }
    for(i=0;i<h;i++){
      for(j=0;j<w;j++){
	if(map[i][j]==1){
	  cnt++;
	  del(i,j,h,w);
	}
      }
    }
    printf("%d\n",cnt);
  }
  return 0;
}


void del(int h,int w,int height,int width){
  int i,j;
  map[h][w]=0;
  for(i=-1;i<=1;i++){
    for(j=-1;j<=1;j++){
      if((i==0 && j==0)|| h+i<0 || w+j<0 || h+i>=height || w+j>=width)continue;
      if(map[i+h][j+w]==1)del(i+h,w+j,height,width);
    }
  }
}