#include<iostream>
#include<sstream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<deque>
#include<vector>
#include<set>
#include<map>
#define ll long long 
#define N 105
using namespace std;
const int max =0x7fffffff;
int h,w;
int ans=0;
string str[N];
int visit[N][N];
int dir[4][2]={1,0,0,1,-1,0,0,-1};
void dfs(int x,int y,char ch)
{
	int i,dx,dy; 
	for(i=0;i<4;i++)
	{
		dx=x+dir[i][0];
		dy=y+dir[i][1];
		if(dx<0||dx>=h||dy<0||dy>=w||visit[dx][dy]||str[dx][dy]!=ch)
		continue;
		visit[dx][dy]=1;
		dfs(dx,dy,ch);
	}
}
int main()
{
	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);//让cin，cout变得快一点
	while(cin>>h>>w,h+w)
	{
		ans=0;
		memset(visit,0,sizeof(visit));
		int i,j;
		for(i=0;i<h;i++)
		{
			cin>>str[i];
		}
		for(i=0;i<h;i++)
		{
			for(j=0;j<w;j++)
			{
				if(!visit[i][j])
				{
					visit[i][j]=1;
					dfs(i,j,str[i][j]);	
					ans++;
				}
			}	
		}
		cout<<ans<<endl;
	}
	return 0;
}
