#include <string>
#include <vector>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <map>
#include <list>
#include <set>
#include <numeric>
#include <queue>
#include <stack>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <cstring>
using namespace std;
typedef long long LL;
typedef pair<int,int> P;

char table[100][100];
int H,W;
void dfs(int x, int y){
	char c=table[x][y];
	table[x][y]='.';
	int dxs[4]={0,-1,0,1};
	int dys[4]={-1,0,1,0};
	for(int i=0;i<4;i++){
		int xx=x+dxs[i];
		int yy=y+dys[i];
		if(0<=xx&&xx<H&&0<=yy&&yy<W&&
			table[xx][yy]==c){
			dfs(xx,yy);
		}
	}
}
bool search()
{
	cin >> H >> W;
	if (H==0&&W==0){
		return false;
	}

	for(int i=0;i<H;i++){
			cin >> table[i];
	}
	int ret=0;
	for(int i=0;i<H;i++){
		for(int j=0;j<W;j++){
			if(table[i][j]!='.'){
				ret++;
				dfs(i,j);
			}
		}
	}
	cout << ret << endl;
	return true;
}
int main() {
	while(search()){
		;
	}
}