#include<iostream>
#include<set> 
#include<vector>
#include<stack>
#include<string>
#include<ctype.h>
#include<sstream> 
#include<math.h>
#include<iomanip>
#include<algorithm>
#include<cstring> 
using namespace std; 

char farm[105][105];
int H,W;
int dx[4] = {-1, 1, 0, 0};
int dy[4] = {0, 0, -1, 1}; 
void dfs(int x, int y, char c)
{
	farm[x][y] = 'x';
	for(int i = 0; i < 4; i++){
		int nx = x + dx[i];
		int ny = y + dy[i];
		if(nx >= 0 && nx < W && ny >= 0 && ny < H && farm[nx][ny] == c){
			dfs(nx, ny, c);
		}
	}
}
int main()
{	
	while(cin>>W>>H && (W || H))
	{
		for(int i = 0; i < W; i++){
			for(int j = 0; j < H; j++){
				cin>>farm[i][j];
			}
		}
		int res = 0;
		for(int i = 0; i < W; i++){
			for(int j = 0; j < H; j++){
				if(farm[i][j] != 'x'){
					dfs(i, j, farm[i][j]);
					res++;
				}
			}
		}
		cout<<res<<endl;
	}
	return 0;
 } 
 
