#include<iostream>
#include<string>

char kukaku[101][101];
int H, W;
void dfs(int x, int y){
	kukaku[x][y] = '.';
	for (int i = -1; i <= 1; ++i){
		for (int j = -1; j <= 1; ++j){
			int nx = y + i, ny = x + j;
			if (nx >= 0 && nx < W && ny >= 0 && ny < H){
				if (kukaku[nx][ny] == kukaku[x][y])dfs(nx, ny);
			}
		}
	}
}

int main(){
	while (1){
		std::cin >> H >> W;
		if (H == 0 && W == 0)break;
		for (int i = 0; i < 101; ++i){
			for (int j = 0; j < 101; ++j){
				kukaku[i][j]='.';
			}
		}
		for (int i = 0; i < W; ++i){
			std::string s;
			std::cin >> s;
			for (int j = 0; j < H; ++j)kukaku[i][j] = s[j];
		}
		int res = 0;
		for (int i = 0; i < W; ++i){
			for (int j = 0; j < H; ++j){
				if (kukaku[i][j] != '.'){
					dfs(i, j);
					res++;
				}
			}
		}
		std::cout << res << std::endl;
	}
	return 0;
}