N,M = map(eval,input().strip().split())
lt = []
idx = [[0] * M for _ in range(N)]
for k in range(N):
lt.append(list(' '.join(input().strip()).split()))
def dfs(x,y,count):
if x>=N or y>=M: #越界
return
if lt[x][y]!='W' or idx[x][y]==1:
return
idx[x][y] = 1
if x==0 and y==0:
dfs(x,y+1,count)
dfs(x+1,y+1,count)
dfs(x+1,y,count)
elif y==0 and x!=0:
dfs(x,y-1,count)
dfs(x-1,y+1,count)
dfs(x,y+1,count)
dfs(x+1,y,count)
dfs(x+1,y+1,count)
elif x==0 and y!=0:
dfs(x,y-1,count)
dfs(x,y+1,count)
dfs(x+1,y,count)
dfs(x+1,y+1,count)
dfs(x+1,y-1,count)
else:
dfs(x-1,y-1,count)
dfs(x-1,y,count)
dfs(x-1,y+1,count)
dfs(x,y-1,count)
dfs(x,y+1,count)
dfs(x+1,y-1,count)
dfs(x+1,y,count)
dfs(x+1,y+1,count)
cnt = 0
for i in range(N):
for j in range(M):
if lt[i][j]=='W' and idx[i][j]==0:
cnt += 1
dfs(i,j,cnt)
print(cnt)