#include<iostream>

typedef std::pair<int,int> P;

int h,w,PX[4]={1,-1,0,0},PY[4]={0,0,1,-1};
char ch[100][100];
bool J[100][100];
int sum=-1;

void dfs(P p){
	for(int i=0;i<4;++i){
		if(p.first+PY[i]>=0 && h>p.first+PY[i] && w>p.second+PX[i] && p.second+PX[i]>=0){
		  if(ch[p.first][p.second]==ch[p.first+PY[i]][p.second+PX[i]]){
			J[p.first+PY[i]][p.second+PX[i]]=true;
		    dfs(P(p.first+PY[i],p.second+PX[i]));
		  }
		}
	}
}

void solve(){
	for(int i=0;i<h;++i){
		for(int j=0;j<w;++j){
			J[i][j]=false;
		}
	}
	for(int i=0;i<h;++i){
		for(int j=0;j<w;++j){
			if(J[i][j]==false)
				++sum;
				dfs(P(i,j));
		}
	}
}

int main(){
	while(1){
		std::cin>>h>>w;
		if(h==0&&w==0)
			break;
		for(int i=0;i<h;++i){
			for(int j=0;j<w;++j){
				std::cin>>ch[i][j];
			}
		}
		solve();
		std::cout<<sum<<std::endl;
	}
	return 0;
}