#include	<iostream>

using namespace std;

/*
	global variable
*/
char Maps[100][100];
int oH, oW, count;
const char chip[4] = { '0', '#', '*', '@' };
const int vecX[4] = { 1, 0, -1, 0 }, vecY[4] = { 0, 1, 0, -1 };

/*
	functions(prototype declaration)
*/
void refresh(void);
void delm(int, int, char);

int main(void) {
	int iH, iW;
	
	while(1) {
		cin >> iH >> iW;
		if(iH == 0 && iW == 0) { break; }
		
		oH = iH;	oW = iW;
		refresh();
		for(int i = 0; i < oH; i++)
			for(int j = 0; j < oW; j++)
				cin >> Maps[i][j];
		for(int i = 0; i < oH; i++) {
			for(int j = 0; j < oW; j++) {
				if(Maps[i][j] != '0') {
					count++;
					delm(i, j, Maps[i][j]);
				}
			}
		}
		cout << count << endl;
	}
}

/*
	functions
*/
void refresh(void) {
	for(int i = 0; i < 100; i++)
		for(int j = 0; j < 100; j++)
			Maps[i][j] = 0;
	count = 0;
}

void delm(int y, int x, char format) {
	Maps[y][x] = '0';
	for(int i = 0; i < 4; i++) {
		if(Maps[ y + vecY[i] ][ x + vecX[i] ] == format) {
			delm(y + vecY[i], x + vecX[i], format);
		}
	}
}