#include<vector>

using namespace std;

const int VECX[4]={-1,0,1,0};

const int VECY[4]={0,-1,0,1};

bool tukattaka[100][100];
int h,w,count;//hはx　wはy

char sekai[100][100];

void func(int x,int y,char ki){
	tukattaka[x][y]=true;
	for(int i=0;i<4;i++){
		if(x+VECX[i]<w&&x+VECX[i]>=0&&y+VECY[i]<h&&y+VECY[i]>=0&&tukattaka[x+VECX[i]][y+VECY[i]]==false&&sekai[x+VECX[i]][y+VECY[i]]==ki){
			func(x+VECX[i],y+VECY[i],ki);
		}
	}
}

int main(){
	while(true){
		cin>>h>>w;
		if(h==0&&w==0)break;
		for(int i=0;i<h;i++){
			for(int j=0;j<w;j++){
				cin>>sekai[i][j];
			}
		}
		for(int i=0;i<h;i++){
			for(int j=0;j<w;j++){
				if(!tukattaka[i][j]){
					func(i,j,sekai[i][j]);
					count++;
				}
			}
		}
		cout<<count<<endl;
		for(int i=0;i<h;i++){
			for(int j=0;j<w;j++){
				tukattaka[i][j]=false;
				sekai[i][j]=NULL;
			}
		}
		count=0;
	}
	return 0;
}