
#include<iostream>
#include<cstdio>

using namespace std;

const int maxn=110;
int next[][2]={{0,1},{1,0},{0,-1},{-1,0}};
int h,w;
char s[maxn][maxn];

int safe(int row,int col)
{
	return row<h&&row>=0&&col<w&&col>=0;	
}

void dfs(int row,int col)
{
	char c=s[row][col];
	s[row][col]='.';
	for(int i=0;i<4;i++){
		int x=row+next[i][0];
		int y=col+next[i][1];
		if(safe(x,y)&&s[x][y]==c){
			dfs(x,y);
		}
	}	
	return ;	
}

int main()
{
	while(scanf("%d%d",&h,&w)!=EOF){
		if(h==0&&w==0){
			break;
		}else{
			for(int i=0;i<h;i++){
				scanf("%s",s[i]);
			}
			/*for(int i=0;i<h;i++){
				for(int j=0;j<w;j++){
					printf("%c",s[i][j]);
				}
				printf("\n");
			}*/
			int ans=0;
			for(int i=0;i<h;i++){
				for(int j=0;j<w;j++){
					if(s[i][j]!='.'){
						ans++;
						dfs(i,j);
					}					
				}
			}
			printf("%d\n",ans);
		}		
	}
	return 0;
}
