1 #include <bits/stdc++.h>
2
3 using namespace std;
4 char a[105][105];
5 int dx[9]={0,-1,-1,-1,0,0,1,1,1};
6 int dy[9]={0,-1,0,1,-1,1,-1,0,1};
7 int N,M;
8 int ans;
9 void dfs(int x,int y)//初始位置
10 {
11 a[x][y]='.';
12 for(int i=1;i<=8;i++)
13 {
14 int xx=x+dx[i];
15 int yy=y+dy[i];
16 if(xx<1||xx>N||yy<1||yy>M||a[xx][yy]=='.')continue;//判断是否越界
17 a[xx][yy]='.'; //回溯
18 dfs(xx,yy);
19
20 }
21 }
22 int main()
23 {
24
25 cin>>N>>M;
26 for(int i=1;i<=N;i++)
27 {
28 for(int j=1;j<=M;j++)
29 {
30 cin>>a[i][j];
31 }
32 }
33
34 for(int i=1;i<=N;i++)
35 {
36 for(int j=1;j<=M;j++)
37 {
38 if(a[i][j]=='W')
39 {
40 ans++;
41 dfs(i,j);
42
43 }
44 }
45 }
46 cout<<ans;
47 return 0;
48 }