#include<iostream>
#include<vector>

int n,m,count=0;
std::vector<std::vector<char> >v;

void dfs(int x,int y,char c){
	v[y][x]=0;
	if(y-1>=0 && v[y-1][x]==c)dfs(x,y-1,c);
	if(y+1<=n-1 && v[y+1][x]==c)dfs(x,y+1,c);
	if(x-1>=0 && v[y][x-1]==c)dfs(x-1,y,c);
	if(x+1<=m-1 && v[y][x+1]==c)dfs(x+1,y,c);
}

int main(){
	std::cin>>n>>m;
	while(!(n==0&&m==0)){
		count=0,v.clear();
		for(int i=0;i<n;i++){
			v.push_back(std::vector<char>());
			for(int j=0;j<m;j++){
				char a;
				std::cin>>a;
				v[i].push_back(a);
			}
		}
		for(int i=0;i<n;i++){
			for(int j=0;j<m;j++){
				if(v[i][j]!=0)dfs(j,i,v[i][j]),count++;
			}
		}
		std::cout<<count<<std::endl;
		std::cin>>n>>m;
	}
	return 0;
}