#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string.h>
#include<math.h>
#include<cstring>
using namespace std;
int h,w,c;
char map[12][12];
char fru;
void dfs(int i,int j){
	int dx,dy,nx,ny;
	map[i][j]='.';
	for(dy=-1;dy<=1;dy++){
		for(dx=-1;dx<=1;dx++){
			if(dx*dy==0){//斜めはダメ
				ny=i+dy;nx=j+dx;
				if(map[ny][nx]==fru&&0<=ny&&ny<h&&0<=nx&&nx<w){
					dfs(ny,nx);
				}
			}
		}
	}
	return;
}
int main(){
	while(1){
		c=0;
		int i,j;
		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];
			}
		}
		for(i=0;i<h;i++){
			for(j=0;j<w;j++){
				switch(map[i][j]){
					case '@':
						fru='@';
						dfs(i,j);
						c++;
						break;
					case '#':
						fru='#';
						dfs(i,j);
						c++;
						break;
					case'*':
						fru='*';
						dfs(i,j);
						c++;
						break;
					default:
						break;
				}
			}
		}
		cout<<c<<endl;
	}
	return 0;
}