#include<bits/stdc++.h>

using namespace std;

char mp[123][123];
int v[123][123];
int dx[] = {-1, 1, 0, 0}, dy[] = {0, 0, -1, 1};

int n, m, res;

bool ok(int x, int y){
	return x >= 0 && x < n && y >= 0 && y < m;
}

void dfs(int x, int y){
//	cout << x << " " << y << endl;
	v[x][y] = 1;
	for (int i = 0; i < 4; i++){
		int tx = x + dx[i], ty = y + dy[i];
		if (ok(tx, ty) && !v[tx][ty] && mp[tx][ty] == mp[x][y]){
			dfs(tx, ty);
		}
	}
}

int main(){
	while (scanf("%d%d", &m, &n) == 2){
		if (!n && !m) break;
		memset(v, 0, sizeof(v));
		for (int i = 0; i < n; i++) scanf("%s", &mp[i]);
		res = 0;
		for (int i = 0; i < n; i++)
			for (int j = 0; j < m; j++){
				if (!v[i][j]){
					res++;
					dfs(i, j);
				}
			}
		printf("%d\n", res);
	}
	return 0;
}