#include <iostream>
#include <vector>
using namespace std;
#define FAST_IO() ios::sync_with_stdio(0); cin.tie(0);
pair<int, int> dir[]
{
{1, 0}, // 상
{-1, 0}, // 하
{0, -1}, // 좌
{ 0, 1 }, // 우
// 대각선
{1, 1},
{-1, -1},
{1, -1},
{-1, 1},
};
vector<vector<int>> map;
int h, w;
void Dfs(int y, int x)
{
for (int i = 0; i < 8; i++)
{
int ny = y + dir[i].first, nx = x + dir[i].second;
if (ny >= h ||
ny < 0 ||
nx >= w ||
nx < 0)
continue;
if (map[ny][nx])
{
map[ny][nx] = false;
Dfs(ny, nx);
}
}
}
int main()
{
FAST_IO();
while (1)
{
int cnt = 0;
cin >> w >> h;
if (!w &&
!h)
break;
//map.resize(h, vector<int>(w));
map = vector<vector<int>>(h, vector<int>(w));
for (int y = 0; y < h; y++)
{
for (int x = 0; x < w; x++)
cin >> map[y][x];
}
for (int y = 0; y < h; y++)
{
for (int x = 0; x < w; x++)
{
// 방문할 수 있는 섬
if (map[y][x])
{
map[y][x] = false;
Dfs(y, x);
cnt++;
}
}
}
cout << cnt << endl;
}
return 0;
}