#include <iostream>
#include <cstdio>
#include <string.h>
using namespace std;

int M,N;
int count;
char flag;
char ss[105][105];
void dsf(int x,int y)
{
	
	ss[x][y]='.';
	if(x>0&&ss[x-1][y]==flag) dsf(x-1,y);
	if(x<N-1&&ss[x+1][y]==flag) dsf(x+1,y);
	if(y>0&&ss[x][y-1]==flag) dsf(x,y-1);
	if(y<M-1&&ss[x][y+1]==flag) dsf(x,y+1);
}
int main() 
{
	while(~scanf("%d%d",&N,&M))
	{
		if(M==0&&N==0) break;
		memset(ss,'\0',sizeof(ss));
		getchar();
		int m,n;
		count=0;
		for(int i=0;i<N;i++)
		{
			for(int j=0;j<M;j++)
			{
				scanf("%c",&ss[i][j]);
			}
			getchar();
		}
		for(int i=0;i<N;i++)
		{
			for(int j=0;j<M;j++)
			{
				if(ss[i][j]!='.')
				{flag=ss[i][j];
					dsf(i,j);
					count++;
				}
			}
		}
		printf("%d\n",count);
	}
	return 0;
}
