#include <iostream>
using namespace std;
string MAP[100];
int H,W,ans;
int dx[4]={1,0,-1,0};
bool dfs(int x,int y,char t){
	if(t==0||MAP[x][y]!=t)return false;
	if(MAP[x][y]==t)MAP[x][y]=0;
	for(int k=0;k<4;k++){
		int nx=x+dx[k],ny=y+dx[k^1];
		if(nx>=0&&nx<H&&ny>=0&&ny<W)dfs(nx,ny,t);
	}
	return true;
}
int main() {
	while(cin>>H>>W,H){
		for(int i=0;i<H;i++)cin>>MAP[i];
		ans=0;
		for(int i=0;i<H;i++)for(int j=0;j<W;j++){
			if(dfs(i,j,MAP[i][j]))ans++;
		}
		cout<<ans<<endl;
	}
	return 0;
}