#include <cstdio>

char data[128][128];
int res, h, w;

void dfs(char c, int x, int y);

int main(void)
{
	while (scanf("%d %d", &h, &w)){
		if (h == 0 && w == 0) break;
		
		for (int i = 0; i < h + 10; i++){
			for (int j = 0; j < w + 10; j++){
				data[i][j] = '0';
			}
		}
		res = 0;
		
		for (int i = 0; i < h; i++){
			scanf("%s", data[i]);
		}
		
		for (int i = 0; i < h; i++){
			for (int j = 0; j < w; j++){
				if (data[i][j] != '0'){
					dfs(data[i][j], i, j);
					res++;
				}
			}
		}
		
		printf("%d\n", res);
	}
	
	return (0);
}

void dfs(char c, int x, int y)
{
	data[x][y] = '0';
	
	if (data[x + 1][y] == c){
		dfs(data[x + 1][y], x + 1, y);
	}
	if (data[x - 1][y] == c && 0 <= (x - 1)){
		dfs(data[x - 1][y], x - 1, y);
	}
	if (data[x][y + 1] == c){
		dfs(data[x][y + 1], x, y + 1);
	}
	if (data[x][y - 1] == c && 0 <= (y - 1)){
		dfs(data[x][y - 1], x, y - 1);
	}
	
	return;
}