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

char a[105][105];
int used[105][105];
int n,m;
int dir[4][2]={1,0,-1,0,0,1,0,-1};
void dfs(int x,int y)
{
	used[x][y]=1;
	for(int i=0;i<4;i++)
	{
		int xx=x+dir[i][0];
		int yy=y+dir[i][1];
		if(xx>=0&&xx<n&&yy>=0&&yy<m&&(a[xx][yy]==a[x][y])&&used[xx][yy]==0)
		{
			dfs(xx,yy);
		}
	}
	return ;
}
int main()
{
	int i,j,res;
	while(~scanf("%d %d",&n,&m))
	{
		if(n==0&&m==0)
		break;
		res=0;
		memset(used,0,sizeof(used));
		for(i=0;i<n;i++)
	{
		scanf("%s",a[i]);
	 } 
	for(i=0;i<n;i++)
	for(j=0;j<m;j++)
	{
		if((a[i][j]=='#'||a[i][j]=='*'||a[i][j]=='@')&&used[i][j]==0)
		{
			dfs(i,j);
			res++;
		}
	 }
	 printf("%d\n",res);
	}
	return 0; 
 } 
