#include<stdio.h>

int func(int [][50],int,int,int);

int main(){
  int i,j;
  int w,h;
  int c[50][50];
  int ans;

  while(1){
    ans=0;
    scanf("%d %d",&w,&h);
    if(w==0&&h==0) break;

    for(i=1;i<=w;i++){
      for(j=1;j<=h;j++){
	scanf("%d",&c[i][j]);
      }
    }
    for(i=1;i<=w;i++){
      for(j=1;j<=h;j++){
	if(c[i][j]==1){
	  c[i][j]=0;
	  ans+=func(c,i,j,0);
	}
      }
    }
    printf("%d\n",ans);
  }
  
  return 0;
}

int func(int x[][50],int i,int j,int flag){

  if(flag==1) return 1;

  if(x[i-1][j]==1&&i>=1){
    x[i-1][j]=0;
    func(x,i-1,j,0);
  }
  if(x[i+1][j]==1){
    x[i+1][j]==0;
    func(x,i+1,j,0);
  }
  if(x[i][j+1]==1){
    x[i][j+1]=0;
    func(x,i,j+1,0);
  }
  if(x[i][j-1]==1&&j>=1){
    x[i][j-1]=0;
    func(x,i,j-1,0);
  }
  if(x[i-1][j-1]==1&&i>=1&&j>=1){
    x[i-1][j-1]=0;
    func(x,i-1,j-1,0);
  }
  if(x[i-1][j+1]==1&&i>=1){
    x[i-1][j+1]=0;
    func(x,i-1,j+1,0);
  }
  if(x[i+1][j-1]==1&&j>=1){
    x[i+1][j-1]=0;
    func(x,i+1,j-1,0);
  }
  if(x[i+1][j+1]==1){
    x[i+1][j+1]=0;
    func(x,i+1,j+1,0);
  }
  return func(x,i,j,1);
}