#include <stdio.h>
#define N 50

void dfs(int, int);

int dx[8] = {1, 0, -1, 0, 1, 1, -1, -1};
int dy[8] = {0, 1, 0, -1, -1, 1, -1, 1};
int input[N][N],w,h,count;
main() {
  int i, j;

  while(1) {
    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", &input[i][j]);
      }
    }
  
    for(i=0 ; i<h ; i++) {
      for(j=0 ; j<w ; j++) {
	if(input[i][j] == 0) continue;
	dfs(j,i);
	count++;
      }
    }
    printf("%d\n", count);
    count=0;
  }

  return 0;
}

void dfs(int x, int y) {
  int i, nx, ny;
  
  input[y][x] = 0;
  for(i=0 ; i<8 ; i++) {
    nx = x + dx[i];
    ny = y + dy[i];
    if(input[ny][nx]==0 || nx<0 || ny<0 || nx>=w ||  ny>=h) continue;
    dfs(nx,ny);
  }
  
  return;
}