#include <stdio.h>

int map[50][50] = {};
int vec[] = { -1, 0, 1 };
int w,h;

void search(int x,int y){
    int i,j;
    if(map[y][x]!=0){
        map[y][x]=0;

        for(i = 0; i < 3; i++){
            for(j = 0; j < 3; j++){
                if((y+vec[i] >=0 && y+vec[i] < h) && (x+vec[j] >= 0 && x+vec[j] < w)){
                    search(x+vec[j],y+vec[i]);
                }
            }
        }
    }
}

int input(){
    int i,j;
    scanf("%d %d",&w,&h);
    if(w == h && w == 0)
        return 0;
    for(i = 0; i < h; i ++){
        for(j = 0; j < w; j ++)
            scanf("%d",&map[i][j]);
    }
    return 1;
}

int main(void){
    int i,j;
    int n;
    while(input()){
        n = 0;
        for(i = 0; i < h; i ++){
            for(j = 0; j < w; j ++){
                if(map[i][j] == 1){
                    n ++;
                    search(j,i);
                }
            }
        }
        printf("%d\n",n);
    }
    return 0;
}
