#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int max(int a,int b){if(a>b){return a;}return b;}
int min(int a,int b){if(a<b){return a;}return b;}
int sortfncsj(const void *a,const void *b){if(*(int *)a>*(int *)b){return 1;}if(*(int *)a==*(int *)b){return 0;}return -1;}

int dx8[8]={-1,-1,-1,0,0,1,1,1};
int dy8[8]={-1,0,1,-1,1,-1,0,1};

int a[64][64],fl[64][64];
int h,w;

void rep(int p,int q){
  if(p<0 || h<=p){return;}
  if(q<0 || w<=q){return;}
  if(a[p][q]==0){return;}
  if(fl[p][q]==1){return;}
  fl[p][q]=1;
  int i;
  for(i=0;i<8;i++){
    rep(p+dx8[i],q+dy8[i]);
  }
}

int main(){
  int i,j,r;
  while(scanf("%d%d",&w,&h),h!=0){
    r=0;
    for(i=0;i<h;i++){
      for(j=0;j<w;j++){
        scanf("%d",&a[i][j]);
        fl[i][j]=0;
      }
    }
    for(i=0;i<h;i++){
      for(j=0;j<w;j++){
        if(fl[i][j]==1 || a[i][j]==0){continue;}
        rep(i,j);
        r++;
      }
    }
    printf("%d\n",r);
  }
  return 0;
}

