https://www.acmicpc.net/problem/4963
import java.util.*;
public class Main {
static int arr[][];
static boolean check[][];
static int dx[]={0,0,1,-1,1,1,-1,-1};
static int dy[]={1,-1,0,0,1,-1,-1,1};
static int w;
static int h;
static void find(int i,int j){
check[i][j]=true;
for(int k=0;k<8;k++){
int x=i+dx[k];
int y=j+dy[k];
if(x>=0 && x<h && y>=0 && y<w){
if(arr[x][y]==1 && check[x][y]==false){
find(x,y);
}
}
}
}
public static void main(String args[]) {
Scanner s=new Scanner(System.in);
while(true){
w=s.nextInt();
h=s.nextInt();
if(w==0 && h==0) break;
arr=new int[h][w];
for(int i=0;i<h;i++){
for(int j=0;j<w;j++){
arr[i][j]=s.nextInt();
}
}
check=new boolean[h][w];
int count=0;
for(int i=0;i<h;i++){
for(int j=0;j<w;j++){
if(arr[i][j]==1 && check[i][j]==false){
find(i,j);
count++;
}
}
}
System.out.println(count);
}
}
}