#include <iostream>
#include <vector>
using namespace std;
void paint(vector<vector<int> > &a, int i, int j) {
a[i][j] = 2;
if (a[i-1][j] == 1) paint(a, i-1, j);
if (a[i+1][j] == 1) paint(a, i+1, j);
if (a[i][j-1] == 1) paint(a, i, j-1);
if (a[i][j+1] == 1) paint(a, i, j+1);
}
int task(vector<vector<int> > &a) {
int k = 0;
for (int i = 1; i < a.size() -1; i++) {
for (int j = 1; j < a[i].size() -1; j++) {
if (a[i][j] == 1) {
k ++;
paint(a, i, j);
}
}
}
return k;
}
int main() {
int m, n;
cin >> m >> n;
vector<vector<int> > a (m+2, vector<int> (n+2, 0));
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
cin >> a[i][j];
}
}
int k = task(a);
cout << k << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgcGFpbnQodmVjdG9yPHZlY3RvcjxpbnQ+ID4gJmEsIGludCBpLCBpbnQgaikgewoJYVtpXVtqXSA9IDI7CglpZiAoYVtpLTFdW2pdID09IDEpIHBhaW50KGEsIGktMSwgaik7CglpZiAoYVtpKzFdW2pdID09IDEpIHBhaW50KGEsIGkrMSwgaik7CglpZiAoYVtpXVtqLTFdID09IDEpIHBhaW50KGEsIGksIGotMSk7CglpZiAoYVtpXVtqKzFdID09IDEpIHBhaW50KGEsIGksIGorMSk7Cn0KCgppbnQgdGFzayh2ZWN0b3I8dmVjdG9yPGludD4gPiAmYSkgewoJaW50IGsgPSAwOwoJZm9yIChpbnQgaSA9IDE7IGkgPCBhLnNpemUoKSAtMTsgaSsrKSB7CgkJZm9yIChpbnQgaiA9IDE7IGogPCBhW2ldLnNpemUoKSAtMTsgaisrKSB7CgkJCWlmIChhW2ldW2pdID09IDEpIHsKCQkJCWsgKys7CgkJCQlwYWludChhLCBpLCBqKTsKCQkJfQkKCQl9Cgl9CgkKCXJldHVybiBrOwp9CgppbnQgbWFpbigpIHsKCWludCBtLCBuOwoJY2luID4+IG0gPj4gbjsKCQoJdmVjdG9yPHZlY3RvcjxpbnQ+ID4gYSAobSsyLCB2ZWN0b3I8aW50PiAobisyLCAwKSk7Cglmb3IgKGludCBpID0gMTsgaSA8PSBtOyBpKyspIHsKCQlmb3IgKGludCBqID0gMTsgaiA8PSBuOyBqKyspIHsKCQkJY2luID4+IGFbaV1bal07CgkJfQoJfQoJCglpbnQgayA9IHRhc2soYSk7CgkKCWNvdXQgPDwgayA8PCBlbmRsOwoJCglyZXR1cm4gMDsKfQ==