#include<iostream>
using namespace std;
char F[102][102];
void DFS(int Y, int X, char c){
    if(F[Y][X]!=c)
        return;

    F[Y][X]='.';

    DFS(Y-1,X,c);
    DFS(Y,X+1,c);
    DFS(Y+1,X,c);
    DFS(Y,X-1,c);
}
int main(){
    while(true){
        int H,W;
        cin>>H>>W;
        if(H==0&&W==0)break;
        int cnt=0;
        for(int y=1;y<=H;y++){
            for(int x=1;x<=W;x++){
                cin>>F[y][x];
            }
        }
        for(int y=1;y<=H;y++){
            for(int x=1;x<=W;x++){
                if(F[y][x]=='@'){
                    cnt++;
                    DFS(y,x,'@');
                }
                else if(F[y][x]=='*'){
                    cnt++;
                    DFS(y,x,'*');
                }
                else if(F[y][x]=='#'){
                    cnt++;
                    DFS(y,x,'#');
                }
            }
        }
        cout<<cnt<<endl;
    }
    return 0;
}
