#include<stdio.h>
#include<iostream>

using namespace std;
#include<string.h>
int w,h,sx,sy;
int dx[4]={1,0,-1,0},dy[4] = {0,1,0,-1};
char fruit[1000][1000];
int flag[1000][1000];
int num;

void dfs(int x,int y,char c){
    flag[x][y] = 1;
    for(int i = 0; i < 4;i++){
            int nx = x + dx[i], ny = y + dy[i];
            if(nx<h&&nx>=0&&ny<w&&ny>=0&&!flag[nx][ny]&&fruit[nx][ny]==c)
                dfs(nx,ny,fruit[nx][ny]);
     }
     return ;
}

void solve(){
    while((~scanf("%d %d",&w,&h))&&w&&h){
        num = 0;
        memset(flag,0,sizeof(flag));
        for(int i = 0; i < h; i++){
            for(int j = 0; j < w;j++)
                cin>>fruit[i][j];
                //scanf("%c",&fruit[i][j]);
        }//for
        for(int i = 0; i < h; i++){
            for(int j = 0; j < w;j++)
            {
                if(!flag[i][j]){
                dfs(i,j,fruit[i][j]);
                  num++;
    }

        }
        }
        printf("%d\n",num);
        }
    return ;
}
int main(){
    solve();
    return 0 ;
}

