#include<cstdio>
#define MAX 120
using namespace std;
int dx[] = {1,0,-1,0};
int dy[] = {0,1,0,-1};
void solve(char data[], int i, int j, int H, int W){
  int i_,j_;
  char fruit = data[i * H + j];
  data[i*H + j] = '!';
  for(int k = 0 ; k < 4 ; k++){
    j_ = j + dx[k];
    i_ = i + dy[k];
    if(i_ >= 0 && i_ < H && j_ >= 0 && j_ < W && data[i_ * H + j_] == fruit)
      solve(data,i_,j_,H,W);
  }
}
int main(){
  while(true){
    int H,W;
    scanf("%d %d",&H,&W);
    if(H == 0 && W == 0)
      break;
    char data[H*W];
    char str[MAX];
    for(int i = 0 ; i < H ; i++){
      scanf("%s",str);
      for(int j = 0 ; j < W ; j++)
        data[i * H + j] = str[j];
    }
    int ans = 0;
    for(int i = 0 ; i < H ; i++){
      for(int j = 0 ; j < W ; j++){
        if(data[i * H + j] != '!'){
          solve(data,i,j,H,W);
          ans++;
        }
      }
    }
    printf("%d\n",ans);
  }
}

