#include <stdio.h>
char map[1000][1000];
int step;
int m,n;
int nx[4]={0,0,1,-1};
int ny[4]={1,-1,0,0};
char ch;
void dfs(int x,int y)
{
	int i,dx,dy;
	map[x][y]='.';
	for(i=0;i<4;i++)
		{
			dx=x+nx[i];dy=y+ny[i];
			if(map[dx][dy]==ch && dx<m &&dx>=0 && dy<n && dy>=0)
				dfs(dx,dy);
		}
		
		
}
int main()
{
	int i,j,k,h;
	while(scanf("%d %d",&m,&n)!=EOF )
	{
		if(n==0 && m==0)
			break;
		getchar();
		for(i=0;i<n;i++)
		{
			for(j=0;j<m;j++)
			{
				scanf("%c",&map[j][i]);
			}
			getchar();
		}
		step=0;
		for(i=0;i<n;i++){
			for(j=0;j<m;j++)
			{
				if(map[j][i]!='.')
				{
					step++;
					ch=map[j][i];
					dfs(j,i);
				}
			}
		}
		printf("%d\n",step);
	}
}

