#include <stdio.h>
#define SIZE 50
int field[SIZE][SIZE];
int already[SIZE][SIZE];
int v1[] = {-1,-1,-1,0,0,1,1,1};
int v2[] = {-1,0,1,-1,1,-1,0,1};
void init(void){
  int i,j;
  for(i=0;i<SIZE;i++){
    for(j=0;j<SIZE;j++){
      field[i][j]=0;
    }
  }
}
void dfs(int y,int x){
  int i,ny,nx;
  field[y][x]=0;
  for(i=0;i<8;i++){
    ny=y+v1[i];
    nx=x+v2[i];
    if(field[ny][nx]==1){
      dfs(ny,nx);
    }
  }
}

int main(void){
  int w,h,i,j,ans;
  while(1){
    scanf("%d %d", &w, &h);
    if(w==0 && h==0)break;
    ans=0;
    init();
    for(i=0;i<h;i++){
      for(j=0;j<w;j++){
	scanf("%d\n", &field[i][j]);
      }
    }
    for(i=0;i<h;i++){
      for(j=0;j<w;j++){
	//	printf("aaa%d\n", field[i][j]);
	if(field[i][j]==1){
	  dfs(i,j);
	  ans++;
	}
      }
    }
    printf("%d\n", ans);
  }
}