#include <iostream>
#include <algorithm>
#include <cassert>
#include <cctype>
#include <complex>
#include <cstdio>
#include <map>
#include <math.h>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;

typedef pair<int,int> P;

int H,W,dx[]={1,0,-1,0},dy[]={0,1,0,-1};
char c[100][100],sc;

int main(){
	while(cin>>H>>W){
		if(!H)return 0;
		for(int i=0;i<H;i++)for(int j=0;j<W;j++)cin>>c[i][j];
		queue<P> q;
		int ans=0;
		for(int i=0;i<H;i++)for(int j=0;j<W;j++){
			if(c[i][j]!='.'){q.push(P(i,j));sc=c[i][j];ans++;}
			while(!q.empty()){
				int sy=q.front().first,sx=q.front().second;
				q.pop();
				c[sy][sx]='.';
				//cout<<"("<<sy<<","<<sx<<")"<<sc<<endl;
				for(int i=0;i<4;i++){
					int ty=sy+dy[i],tx=sx+dx[i];
					if(ty<0||ty>=H||tx<0||tx>=W||c[ty][tx]!=sc)continue;
					q.push(P(ty,tx));
				}
				/*for(int i=0;i<H;i++){
					for(int j=0;j<W;j++)cout<<c[i][j];cout<<endl;
				}*/
			}
		}
		cout<<ans<<endl;
	}
}