#include<stdio.h>

int map[50][50];
int h,w;

void dfs(int y,int x){
  int i,dx[] = {0,1,1,1,0,-1,-1,-1} , dy[] = {-1,-1,0,1,1,1,0,-1};
  map[y][x] = 0;
  for(i=0;i<8;i++){
    int sx = x+dx[i], sy = y+dy[i];
    if(sx<0 || sy<0 || w<=sx || h<=sy)continue;
    if(!map[sy][sx])continue;
    dfs(sy,sx);
  }
}


int main(void){
    int i,j,ans;

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

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

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