#include<iostream>
using namespace std;

char data[102][102];
void DFS(char key,int i,int j){
  if(data[i][j]!=key)
    return;
  data[i][j]='0';
  DFS(key,i,j-1);
  DFS(key,i,j+1);
  DFS(key,i+1,j);
  DFS(key,i-1,j);
}
int main(){
  int cnt;
  while(1){
    cnt=0;
    for(int i=0;i<102;i++){
      for(int j=0;j<102;j++){
        data[i][j]='0';
      }
    }
    int H,W;
    cin>>H>>W;
    if(!H&&!W)
      break;
    for(int i=1;i<=H;i++){
      for(int j=1;j<=W;j++){
        cin>>data[i][j];
      }
    }
    //cout<<endl;
    for(int i=1;i<=H;i++){
      for(int j=1;j<=W;j++){
        if(data[i][j]!='0'){
          DFS(data[i][j],i,j);
          cnt++;
          //cout<<cnt<<endl;
          /*for(int k=1;k<=H;k++){
            for(int z=1;z<=W;z++){
              cout<<data[k][z];
            }
            cout<<endl;
          }*/
          //cout<<endl;
        }
      }
    }
    cout<<cnt<<endl;
  }
  return 0;
}

