#include<cstdio>
#include<iostream>
using namespace std;
const int maxn=110;
int w,h,ans;
char maze[maxn][maxn],fruit;
void dfs(int x,int y){
	maze[x][y]='p';
	for(int i=-1;i<=1;i++){
		for(int j=-1;j<=1;j++){
			if(i*j==0){
				int nx=x+i,ny=y+j;
				if(0<=nx&&nx<h&&0<=ny&&ny<w&&maze[nx][ny]==fruit)
					dfs(nx,ny);
			}
		}
	}
}
int main()
{
	while(cin>>w>>h&&w){
		ans=0;
		getchar();
		for(int i=0;i<h;i++){
			for(int j=0;j<w;j++){
				scanf("%c",&maze[i][j]);
			}
			getchar();
		}
		for(int i=0;i<h;i++){
			for(int j=0;j<w;j++)
				if(maze[i][j]!='p'){
					fruit=maze[i][j];
					dfs(i,j);
					ans++;
				}
		}
		cout<<ans<<endl;
	}
	return 0;
}