#include <iostream>
using namespace std;
int H,W;
char F[101][101];
int A[101][101];
int dx[4] = {1,0,-1,0}, dy[4] = {0,1,0,-1};

void dfs(int i, int j){
    A[i][j] = 1;
    for(int k=0; k<4; k++) {
        int nx = i + dx[k], ny = j + dy[k];
        if(nx >= 0 && nx < H && ny >= 0 && ny < W && F[nx][ny] == F[i][j]) {
            if(A[nx][ny] == 0) dfs(nx,ny);
        }
    }
}

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

        int res = 0;
        for(int i=0; i<H; i++) {
            for(int j=0; j<W; j++) {
                if(A[i][j] == 0) {
                    dfs(i,j);
                    res++;
                }
            }
        }
        cout << res << endl;
    }
}
