#include<iostream>
#define MAX_N 102
using namespace std;
void solve();
void init();
int dfs(int,int,char);
char field[MAX_N][MAX_N];
int dx[]={0,1,0,-1},dy[]={-1,0,1,0};
int W,H;
void print();
int main(){
  while(cin>>H>>W,W){
    init();
    for(int i=1;i<H+1;i++){
      for(int j=1;j<W+1;j++){
	cin>>field[i][j];
      }
    }
    solve();
  }
  return 0;
}
void init(){
  for(int i=0;i<H+2;i++){
    for(int j=0;j<W+2;j++){
      field[i][j]='.';
    }
  }
}
int dfs(int x,int y,char c){
  if(field[y][x]!=c)return 0;  
  field[y][x]='.';
  for(int i=0;i<4;i++){
    dfs(x+dx[i],y+dy[i],c);
  }
  return 1;
}
void solve(){
  int a=0;
  for(int i=1;i<H+1;i++){
    for(int j=1;j<W+1;j++){
      if(field[i][j]!='.')a+=dfs(j,i,field[i][j]);
    }
  }
  cout<<a<<endl;
}
void print()
{
  for(int i=0;i<H+2;i++){
    for(int j=0;j<W+2;j++){
      cout<<field[i][j];
    }
    cout<<endl;
  }
}