#include<iostream>
using namespace std;
int n,m,dx[]={1,0,-1,0},dy[]={0,1,0,-1},ans;
char c[30][30],k;
void DFS(int x,int y)
{
	if(c[x][y]==k && x>=1 && x<=n && y>=1 && y<=m){
		c[x][y]='?';
	}
	else return;
	for(int i=0;i<4;i++)DFS(x+dx[i],y+dy[i]);
	return;
}
int main()
{
	while(1){
		cin>>n>>m;
		if(m==0 && n==0)return 0;
		int fx,fy;ans=0;
		for(int i=1;i<=n;i++)
		    for(int j=1;j<=m;j++){
		    	cin>>c[i][j];
			}
	    for(int i=1;i<=n;i++)
	        for(int j=1;j<=m;j++)
	        	if(c[i][j]!='?'){
	        		ans++;
	        		k=c[i][j];
		            DFS(i,j);
		        }
		cout<<ans<<endl;
	}
	return 0;
}