#include <iostream>
using namespace std;
char map[101][101];

int h,w;
void dfs(int y,int x,char str){
	int nx,ny;
	map[y][x] = 'x';
	int dx[] = {0,-1,1,0},dy[] = {-1,0,0,1};
	for(int i=0;i<4;i++){
		ny = y + dy[i];
		nx = x + dx[i];
		if(nx > -1 && nx < w && ny > -1 && ny < h && map[ny][nx] == str) dfs(ny,nx,str);
	}
	return ;
}
void scan(){
	char str[3] = {'#','*','@'};
	int count = 0;
	for(int i=0;i<h;i++){
		for(int j=0;j<w;j++){
			for(int k=0;k<3;k++){
				if(map[i][j] == str[k]){
					dfs(i,j,str[k]);
					count++;
				}
			}
		}
	}
	cout << count << endl;
	return ;
}
int main(){

	while(cin >> h >> w &&(h!=0&&w!=0)){
		for(int i=0;i<h;i++){
			cin >> map[i];
		}
		scan();
	}
	return 0;
}