#include<iostream>
#include<cstdio>

using namespace std;

char field[100][100];
int used[100][100];
char str;
int H, W;
int dx[4] = {1,0,-1,0};
int dy[4] = {0,1,0,-1};
char fruit;
int ans = 0;

void dfs(int x, int y){
    used[y][x] = 1;
    for(int i=0; i<4; i++){
        int nx = x + dx[i], ny = y + dy[i];
        if(0<=nx && nx<W && 0<=ny && ny<H && used[ny][nx]==0 && fruit==field[ny][nx])
        dfs(nx, ny);
    }
}

int main(){
    while(1){
        ans = 0;
        for(int i=0; i<H; i++){
            for(int j=0; j<W; j++){
                used[i][j] = 0;
            }
        }
        
        cin >> H >> W;
        if(H==0 && W==0) break;
        for(int i=0; i<H; i++){
            for(int j=0; j<W; j++){
                cin >> field[i][j];
            }
        }

        for(int y=0; y<H; y++){
            for(int x=0; x<W; x++){
                if(used[y][x]==0){
                    fruit = field[y][x];
                    dfs(x,y);
                    ans++;
                }
            }
        }
        printf("%d\n", ans);
    }
    return 0;
}
