#include<iostream>
#include<cstring>
#define maxn 100
using namespace std;
char a[maxn][maxn];
char mm;
void dfs(int x,int y)
{
	a[x][y]='1';
	if(a[x-1][y]!=mm&&a[x+1][y]!=mm&&a[x][y-1]!=mm&&a[x][y+1]!=mm)
		return;
	
	if(a[x-1][y]==mm) a[x-1][y]='1',dfs(x-1,y);
	if(a[x+1][y]==mm) a[x+1][y]='1',dfs(x+1,y);
	if(a[x][y-1]==mm) a[x][y-1]='1',dfs(x,y-1);
	if(a[x][y+1]==mm) a[x][y+1]='1',dfs(x,y+1);
}
int main()
{
	int m,n;
	while(cin>>m>>n,m||n){
		int res=0;
		memset(a,0,sizeof(a));
		
		for(int i=1;i<=n;i++)
			for(int j=1;j<=m;j++)
				cin>>a[i][j];
		
		for(int i=1;i<=n;i++)
			for(int j=1;j<=m;j++){
				if(a[i][j]!='1'){
					mm=a[i][j];
					dfs(i,j);
					res++;
				}
			}

		cout<<res<<endl; 
	}
return 0;
}