#include<iostream>
using namespace std;

char F[102][102];

void DFS(int y, int x, char a){
  if(F[y][x]!=a){
    return;
  }
  F[y][x]='.';

  DFS(y-1,x,a);
  DFS(y,x+1,a);
  DFS(y+1,x,a);
  DFS(y,x-1,a);
}

int main(){
  int n,m;
  int cnt=0;
  while(1){
    cin >> n >> m;
    if(n==0&&m==0){
      return 0;
    }
    for(int y=1; y<=n; y++){
      for(int x=1; x<=m; x++){
        cin >> F[y][x];
      }
    }
    cnt=0;
    for(int y=1; y<=n; y++){
      for(int x=1; x<=m; x++){
        if(F[y][x]=='#'){
          cnt++;
          DFS(y,x,'#');
        }
        if(F[y][x]=='*'){
          cnt++;
          DFS(y,x,'*');
        }
        if(F[y][x]=='@'){
          cnt++;
          DFS(y,x,'@');
        }
      }
    }
    cout << cnt << endl;
  }
}
