#include<stdio.h>

int map[50][50];
int x[8] = {1,0,-1,0,1,-1,-1,1};
int y[8] = {1,1,-1,-1,0,1,0,-1};
int w,h;


void land(int a,int b){
  int i;
  for(i=0;i<8;i++){
    if(a+x[i]<h && a+x[i]>=0 && b+y[i]<w && b+y[i]>=0){
      if(map[a+x[i]][b+y[i]]){
	map[a+x[i]][b+y[i]]=0;
	land(a+x[i],b+y[i]);
      }
    }
  }
}

int main(void)
{

  int i,j;
  int count;
    
  while(1){
    scanf("%d %d",&w,&h);
    if(!w && !h)break;

    for(i=0;i<h;i++){
      for(j=0;j<w;j++){
	scanf("%d ",&map[i][j]);
      }
    }

    count = 0;
    for(i=0;i<h;i++){
      for(j=0;j<w;j++){
	if(map[i][j]){
	  map[i][j] = 0;
	  count++;
	  land(i,j);
	}
      }
    }

    printf("%d\n",count);
  }
  return 0;
}