#include<iostream>
#include<cstdlib>
using namespace std;

char field[100][100];
int H,W;
int num;
int dx[4]={-1,1,0,0};
int dy[4]={0,0,-1,1};

void dfs(int x,int y,char m)
{
	field[x][y]='.';
	for(int i=0;i<4;i++)
	{ 
		int nx=x+dx[i];
		int ny=y+dy[i];
		if(nx>=0&&nx<H&&ny>=0&&ny<W&&field[nx][ny]==m)
		{
			dfs(nx,ny,m);
		}
	} 
}

void solve(char m)
{
	for(int i=0;i<H;i++)
	{
		for(int j=0;j<W;j++)
		{
			if(field[i][j]==m)
			{
				dfs(i,j,m);
				num++;
			}
		}
	}
}

int main()
{
	while(1)
	{
		num=0;
		cin>>H>>W;
		if(H==0&&W==0)
			exit(0);
		for(int i=0;i<H;i++)
		{
			for(int j=0;j<W;j++)
			{
				cin>>field[i][j];
			}
		}
		solve('@');
		solve('#');
		solve('*');
		cout<<num<<endl;
	}
	
	return 0;
}

