// HoaiNam
#include <bits/stdc++.h>
#define endl "\n"
#define int long long
#define all(x) x.begin(), x.end()
#define NAME ""
using namespace std;
const int N = 1e3 + 1;
const int INF = 1e9;
const int mod = 1e9 + 7;
int dx[] = { -1, 0, 1, 0};
int dy[] = {0, 1, 0, -1};
char A[N][N];
bool vis[N][N];
int n, m;
void dfs(pair<int, int> start) {
auto [u, v] = start;
vis[u][v] = true;
for (int i = 0; i < 4; ++i) {
int x = u + dx[i];
int y = v + dy[i];
if (x >= 1 && x <= n && y >= 1 && y <= m && !vis[x][y] && A[x][y] == '#') {
dfs({x, y});
}
}
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
if (fopen(NAME".INP", "r")) {
freopen(NAME".INP", "r", stdin);
freopen(NAME".OUT", "w", stdout);
}
cin >> n >> m;
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= m; ++j) {
cin >> A[i][j];
}
}
int cnt = 0;
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= m; ++j) {
if (!vis[i][j] && A[i][j] == '#') {
dfs({i, j});
cnt++;
}
}
}
cout << cnt << endl;
// HoaiNam
}
Ly8gSG9haU5hbQojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBlbmRsICJcbiIKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgYWxsKHgpIHguYmVnaW4oKSwgeC5lbmQoKQojZGVmaW5lIE5BTUUgIiIKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBOID0gMWUzICsgMTsKY29uc3QgaW50IElORiA9IDFlOTsKY29uc3QgaW50IG1vZCA9IDFlOSArIDc7CgppbnQgZHhbXSA9IHsgLTEsIDAsIDEsIDB9OwppbnQgZHlbXSA9IHswLCAxLCAwLCAtMX07CgpjaGFyIEFbTl1bTl07CmJvb2wgdmlzW05dW05dOwppbnQgbiwgbTsKCnZvaWQgZGZzKHBhaXI8aW50LCBpbnQ+IHN0YXJ0KSB7CiAgICBhdXRvIFt1LCB2XSA9IHN0YXJ0OwogICAgdmlzW3VdW3ZdID0gdHJ1ZTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgKytpKSB7CiAgICAgICAgaW50IHggPSB1ICsgZHhbaV07CiAgICAgICAgaW50IHkgPSB2ICsgZHlbaV07CiAgICAgICAgaWYgKHggPj0gMSAmJiB4IDw9IG4gJiYgeSA+PSAxICYmIHkgPD0gbSAmJiAhdmlzW3hdW3ldICYmIEFbeF1beV0gPT0gJyMnKSB7CiAgICAgICAgICAgIGRmcyh7eCwgeX0pOwogICAgICAgIH0KICAgIH0KfQoKc2lnbmVkIG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoKICAgIGlmIChmb3BlbihOQU1FIi5JTlAiLCAiciIpKSB7CiAgICAgICAgZnJlb3BlbihOQU1FIi5JTlAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKE5BTUUiLk9VVCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KCiAgICBjaW4gPj4gbiA+PiBtOwoKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgewogICAgICAgIGZvciAoaW50IGogPSAxOyBqIDw9IG07ICsraikgewogICAgICAgICAgICBjaW4gPj4gQVtpXVtqXTsKICAgICAgICB9CiAgICB9CgogICAgaW50IGNudCA9IDA7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyArK2kpIHsKICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8PSBtOyArK2opIHsKICAgICAgICAgICAgaWYgKCF2aXNbaV1bal0gJiYgQVtpXVtqXSA9PSAnIycpIHsKICAgICAgICAgICAgICAgIGRmcyh7aSwgan0pOwogICAgICAgICAgICAgICAgY250Kys7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBjb3V0IDw8IGNudCA8PCBlbmRsOwoKICAgIC8vIEhvYWlOYW0KfQo=