#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string.h>
#include<math.h>
#include<cstring>
using namespace std;
int h,w,c;
char map[12][12];
char fru;
void dfs(int i,int j){
    int dx,dy,nx,ny;
    map[i][j]='.';
    for(dy=-1;dy<=1;dy++){
        for(dx=-1;dx<=1;dx++){
            if(dx*dy==0){
                ny=i+dy;nx=j+dx;
                if(map[ny][nx]==fru&&0<=ny&&ny<h&&0<=nx&&nx<w){
                    dfs(ny,nx);
                }
            }
        }
    }
    return;
}
int main(){
    while(1){
        c=0;
        int i,j;
        cin>>h>>w;
        if(h==0&&w==0)break;
        for(i=0;i<h;i++){
            for(j=0;j<w;j++){
                cin>>map[i][j];
            }
        }
        for(i=0;i<h;i++){
            for(j=0;j<w;j++){
                switch(map[i][j]){
                    case '@':
                        fru='@';
                        dfs(i,j);
                        c++;
                        break;
                    case '#':
                        fru='#';
                        dfs(i,j);
                        c++;
                        break;
                    case'*':
                        fru='*';
                        dfs(i,j);
                        c++;
                        break;
                    default:
                        break;
                }
            }
        }
        cout<<c<<endl;
    }
    return 0;
}