#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <map>
#include <sstream>
#include <queue>
#include <cstdlib>
#include <algorithm>
#include <iterator>
#include <stack>
#include <list>
using namespace std;
#define INF 100000000
typedef long long int lli;
typedef pair<int,int> P;

int W,H,ans;
char MAP[101][101];
bool flag[101][101];
int dx[4]={1,0,-1,0};
int dy[4]={0,1,0,-1};

void dfs(int  y,int x,char c){
	flag[y][x]=true;
	for(int i=0; i<4; ++i){
		int nx = x+dx[i];
		int ny = y+dy[i];
		if(1<=nx&&nx<=W&&1<=ny&&ny<=H&&MAP[ny][nx]==c&&!flag[ny][nx]){
			dfs(ny,nx,c);
		}
	}
}

int main(){
	while(cin>>H>>W&&H&&W){
		ans=0;
		for(int i=1; i<=H; ++i){
			for(int j=1; j<=W; ++j){
				cin >> MAP[i][j];
				flag[i][j]=false;
			}
		}
		for(int i=1; i<=H; ++i){
			for(int j=1; j<=W; ++j){
				if(!flag[i][j]){
					++ans;
					dfs(i,j,MAP[i][j]);
				}
			}
		}
		cout << ans << "\n";
	}
}