#include<iostream>
using namespace std;
const int MAX = 105;
char map[MAX][MAX];
bool visit[MAX][MAX];
int h, w;
int dx[4] = { 0,0,1,-1 };
int dy[4] = { 1,-1,0,0 };
void bfs(int x, int y)
{
	visit[x][y] = true;
	int xx, yy;
	for (int i = 0; i < 4; i++)
	{
		xx = x + dx[i];
		yy = y + dy[i];
		if (xx >= 0 && xx < h&&yy >= 0 && yy < w)
		{
			if (map[x][y] == map[xx][yy] && !visit[xx][yy])
			{
				bfs(xx, yy);
			}
		}
	}
}
int main()
{
	int i, j;
	while (cin >> h >> w)
	{
		if (h == 0 && w == 0)
		{
			break;
		}
		for (i = 0; i < h; i++)
		{
			for (j = 0; j < w; j++)
			{
				cin >> map[i][j];
				visit[i][j] = false;
			}
		}
		int sum = 0;
		for (i = 0; i < h; i++)
		{
			for (j = 0; j < w; j++)
			{
				if (!visit[i][j])
				{
					bfs(i, j);
					sum++;
				}
			}
		}
		cout << sum << endl;
	}
	return 0;
}
