#include <iostream>

const int MAX_H=100;
const int MAX_W=100;

char region[MAX_H][MAX_W];
char visited[MAX_H][MAX_W];

void mark(int x, int y, int w, int h, char target){
    if(x<0||y<0||x>=h||y>=w||visited[x][y]||region[x][y]!=target)
        return;
    visited[x][y]=1;
    mark(x-1, y, w, h, target);
    mark(x+1, y, w, h, target);
    mark(x, y-1, w, h, target);
    mark(x, y+1, w, h, target);
}
int main(){
    int w,h;
    std::cin>>w>>h;
    while(w&&h){
        for(int i=0; i<h; ++i){
            for(int j=0; j<w; ++j){
                std::cin >> region[i][j];
                visited[i][j]=0;
            }
        }
        int count=0;
        for(int i=0; i<h; ++i){
            for(int j=0; j<w; ++j){
                if(!visited[i][j]){
                    ++count;
                    mark(i, j, w, h, region[i][j]);
                }
            }
        }
        std::cout<<count<<std::endl;
        std::cin>>w>>h;
    }
}
