#include<stdio.h>
#define MAX_LEN 100
int M,N,count=0;
char farmland[MAX_LEN][MAX_LEN];
void solve();
void dfs(int x,int y,char c);
int main(void){
	scanf("%d %d",&M,&N);
	while(M||N){
		getchar();
		for(int i=0;i<M;i++){
			for(int j=0;j<N;j++)	
				scanf("%c",&farmland[i][j]);
			getchar();
		}
		count=0;
		solve();
		scanf("%d%d",&N,&M);	
	}
	return 0;
}

void solve(){
	for(int i=0;i<M;i++)	
		for(int j=0;j<N;j++){
			if(farmland[i][j]=='@'||farmland[i][j]=='#'||farmland[i][j]=='*'){
				dfs(i,j,farmland[i][j]);
				count++;				
			}
		}
	printf("%d\n",count);
}

void dfs(int x,int y,char c){
	farmland[x][y]=0;
	for(int dx=-1;dx<=1;dx++)
		for(int dy=-1;dy<=1;dy++)
			if(dx*dy==0&&x+dx>=0&&x+dx<M&&y+dy>=0&&y+dy<N&&farmland[x+dx][y+dy]==c){
				dfs(x+dx,y+dy,c);
			}
}