#include <iostream>
using namespace std;

int dx[]={-1,0,1,0},dy[]={0,-1,0,1},H,W;
char farm[101][101];

void dfs(int x, int y, char s){
	farm[x][y]='^';
	
	for(int i=0;i<4;i++){
		for(int j=0;j<4;j++){
			int nx=x+dx[i],ny=y+dy[i];
			if(nx<0 || W<=nx) continue;
			if(ny<0 || H<=ny) continue;
			if(farm[nx][ny] != s) continue;
			else dfs(nx, ny, s);
		}
	}
	return;
}

int main(void)
{
	while(cin >> H >> W,H){
		int res=0;
		
		for(int i=0;i<W;i++){
			for(int j=0;j<H;j++){
				cin >> farm[i][j];
			}
		}
		
		for(int i=0;i<W;i++){
			for(int j=0;j<H;j++){
				if(farm[i][j] != '^'){
					dfs(i,j,farm[i][j]);
					res++;
				}
			}
		}
		
		cout << res << endl;
	}
}