#include <iostream>
#include <stdio.h>
using namespace std;


int ans[100]={0},counter=0;//flag=0;

char F[100][100];//土地の種類F[x][y]

int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};


bool search(int x,int y,int H,int W,char kind){//=F[x][y];//果物の種類 'a'を既にチェック済みとする
	
	if(kind=='a') return false;
	
	F[x][y]='a';//既にチェック済み(ループより前にするのが大事)
	
	for(int i=0;i<4;i++){
		int nx=x+dx[i],ny=y+dy[i];
		if(nx>=0 && nx<H && ny>=0 && ny<W && F[nx][ny]==kind){
			search(nx,ny,H,W,kind);
		}//同種だったらさらにサーチ
	}
	return true;
	//サーチしたことを示す
}

bool solve (){
	int H,W;
	cin >> H >> W;
	if(H==0) return false;
	
	for(int i=0;i<H;i++){
		cin >> F[i];
	}//入力
	
	for(int i=0;i<H;i++){
		for(int j=0;j<W;j++){
			bool check;
			check=search(i,j,H,W,F[i][j]);
			if(check) ans[counter]++;
		}
	}
	return true;
}


int main (){
	while(solve()){
		counter++;
	}
	for(int i=0;i<counter;i++){
		cout << ans [i]<<"\n";
	}
}
	