#include<iostream>
using namespace std;
int h,w;
char farm[100][100];
int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};
void dfs(int x,int y,char c){
  farm[x][y]='.';
  for(int i=0;i<4;i++){
    int nx=x+dx[i],ny=y+dy[i];
    if(0<=nx&&nx<h&&0<=ny&&ny<w&&farm[nx][ny]==c) dfs(nx,ny,c);
  }
  return ;
}
int main(){
  while(1){
    cin >> h >> w;
    if(h==0&&w==0) break;
    for(int i=0;i<h;i++)
      for(int j=0;j<w;j++) cin >> farm[i][j];
    int ans=0;
    for(int i=0;i<h;i++){
      for(int j=0;j<w;j++){
	if(farm[i][j]=='#'){
	  dfs(i,j,'#');
	  ans++;
      }
	if(farm[i][j]=='@'){
	  dfs(i,j,'@');
	  ans++;
	}
	if(farm[i][j]=='*'){
	  dfs(i,j,'*');
	  ans++;
	}
      }
    }
    cout << ans  << "\n";
  }
  return 0;
}

