#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; #define MOD 1000000007 int h, w; vector > a(3000, vector(3000)); void dfs(int y, int x) { a[y][x] = 2; for (int i = -1; i <= 1; ++i) { for (int j = -1; j <= 1; ++j) { if (i * i + j * j == 1) { int ny = y + i, nx = x + j; if (0 <= ny && ny < h && 0 <= nx && nx < w) { if (a[ny][nx] == 1) { dfs(ny, nx); } } } } } } int main() { cin >> h >> w; for (int i = 0; i < h; ++i) { for (int j = 0; j < w; ++j) { cin >> a[i][j]; } } int ans = 0; for (int i = 0; i < h; ++i) { for (int j = 0; j < w; ++j) { if (a[i][j] == 1) { ans++; dfs(i, j); } } } cout << ans << endl; return 0; }