#include <iostream>
using namespace std;
int H,W;
int sum;
char temp;
char garden[100][100];
void dfs(int x,int y){
	temp=garden[x][y];
	garden[x][y]='a';
	for(int i=-1;i<=1;i++)
	for(int j=-1;j<=1;j++)
	{
		if((i==0)&&(j!=0)||(i!=0)&&(j==0))
		{
			if((x+i>=0)&&(y+j>=0)&&(x+i<H)&&(y+j<W)&&(garden[x+i][y+j]!='a')&&(garden[x+i][y+j]==temp)){
				dfs(x+i,y+j);
			}
		}
	}
}
void solve(){
	while(cin>>H>>W){
		if(H==0) break;
		for(int i=0;i<H;i++)
		for(int j=0;j<W;j++)
		cin>>garden[i][j];
		sum=0;
		for(int i=0;i<H;i++)
		for(int j=0;j<W;j++)
		if(garden[i][j]!='a')
		{
			sum++;
			dfs(i,j);
		}
		cout<<sum<<endl;
	}
}
int main(){
	solve();
}
