#include<iostream>
#include<algorithm>
#include<vector>

using namespace std;

int H,W;

void saiki(char map[][100],int i,int j,char c){

	map[i][j] = ' ';
	for (int dx=-1;dx<=1;dx++){
	    if(i+dx >= 0 && i+dx<W){
		if(map[i+dx][j] == c){
		    saiki(map,i+dx,j,c);
		}
	    }
	}
	for (int dy=-1;dy<=1;dy++){
	    if(j+dy >= 0 && j+dy<H){
		if(map[i][j+dy] == c){
		    saiki(map,i,j+dy,c);
		}
	    }
	}
}


int main(){

    bool flag=true;
    while(true){
	int count = 0;
	cin >> H >> W;
	if(H==0&&W==0) break;
	char map[100][100];
	for(int i=0;i<W;i++){
	    for(int j=0;j<H;j++){
		cin >> map[i][j];
	    }
	}

	int i=0,j=0;
	char c;
	for(int i=0;i<W;i++){
	    for(int j=0;j<H;j++){
		c = map[i][j];
		if(c != ' '){
		    count++;
		    saiki(map,i,j,c);
		}
	    }
	}

	cout << count << endl;
    }
	return 0;
    }