#include"bits/stdc++.h"
using namespace std;
using ll=long long;
#define S second
#define F first
const int dx[]={0,0,1,-1};
const int dy[]={1,-1,0,0};
const int mxn=1005;
pair<int,int>p[mxn][mxn];
char g[mxn][mxn];
int sz[mxn][mxn];
pair<int,int>fp(pair<int,int>i){
if(p[i.F][i.S]==i)return i;
return p[i.F][i.S]=fp(p[i.F][i.S]);
}
void mrg(pair<int,int>a,pair<int,int>b){
a=fp(a),b=fp(b);
sz[a.F][a.S]+=sz[b.F][b.S];
p[b.F][b.S]=a;
}
int main(){
cin.tie(0)->sync_with_stdio(0);
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>g[i][j];
p[i][j]={i,j};
sz[i][j]=1;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
for(int d=0;d<4;d++){
int ni=i+dx[d];
int nj=j+dy[d];
if(ni>=n||ni<0||nj>=m||nj<0)continue;
if(g[ni][nj]==g[i][j])mrg({i,j},{ni,nj});
}
}
}
set<pair<int,int>>s;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(g[i][j]=='*')continue;
s.insert(fp({i,j}));
}
}
cout<<s.size();
}