#include <bits/stdc++.h>
using namespace std;
const int maxn = 110;
const int dx[4] = {0, 0, 1, -1};
const int dy[4] = {1, -1, 0, 0};
int n, m, ret;
char G[maxn][maxn];
bool ok(int x, int y) { return x >= 0 && y >= 0 && x < n && y < m; }
void dfs(int x, int y) {
  if (G[x][y] == '.') return;
  G[x][y] = '.';
  for (int i = 0; i < (4); i++) {
    int tx = x + dx[i];
    int ty = y + dy[i];
    if (ok(tx, ty) && G[tx][ty] == 'B') {
      dfs(tx, ty);
    }
  }
}
signed main() {
  while (~scanf("%d", &n) && ~scanf("%d", &m)) {
    memset((G), 0, sizeof(G));
    ret = 0;
    for (int i = 0; i < (n); i++) scanf("%s", G[i]);
    for (int i = 0; i < (n); i++) {
      for (int j = 0; j < (m); j++) {
        if (G[i][j] == 'B') {
          dfs(i, j);
          ret++;
        }
      }
    }
    printf("%d\n", ret);
  }
  return 0;
}
