#include <bits/stdc++.h>
using namespace std;
char in[110][110];
void dfs(int i, int j, vector<vector<int> > &vis) {
  int R = vis.size();
  int C = vis[0].size();
  if (i > 0)
    if (!vis[i - 1][j] && in[i - 1][j] == 'B') {
      vis[i - 1][j] = 1;
      dfs(i - 1, j, vis);
    }
  if (i < R - 1)
    if (!vis[i + 1][j] && in[i + 1][j] == 'B') {
      vis[i + 1][j] = 1;
      dfs(i + 1, j, vis);
    }
  if (j > 0)
    if (!vis[i][j - 1] && in[i][j - 1] == 'B') {
      vis[i][j - 1] = 1;
      dfs(i, j - 1, vis);
    }
  if (j < C - 1)
    if (!vis[i][j + 1] && in[i][j + 1] == 'B') {
      vis[i][j + 1] = 1;
      dfs(i, j + 1, vis);
    }
}
int main() {
  int R, C;
  scanf("%d ", &R);
  scanf("%d ", &C);
  for (int i = 0; i < R; i++) {
    fgets(in[R - 1 - i], 110, stdin);
  }
  int comp = 0;
  vector<vector<int> > vis(R, vector<int>(C, 0));
  for (int j = 0; j < C; j++) {
    if (in[0][j] == 'B' && !vis[0][j]) {
      comp++;
      vis[0][j] = 1;
      dfs(0, j, vis);
    }
  }
  printf("%d\n", comp);
  return 0;
}
