#include <iostream>  
#include <cstdio>  
#include <cstring>  
#include <algorithm>
#include <ctime>  
using namespace std;  
char S[105][105];  
int xx[]={0,-1,0,1};  
int yy[]={-1,0,1,0};  
int N,M;  
clock_t start,finish; 
void dfs(int x,int y,char temp_c){              //同种水果再dfs，因此加上一个参数代表水果种类  
    int i,j,temp_x,temp_y;  
    S[x][y]='.';  
    for(i=0;i<4;i++)  
    for(j=0;j<4;j++){  
        temp_x=x+xx[i];  
        temp_y=y+yy[i];  
        if(S[temp_x][temp_y]!=temp_c||temp_x<0||temp_x>=N||temp_y<0||temp_y>=M)  
        continue;  
        dfs(temp_x,temp_y,temp_c);  
    }  
}  
int main(){ 
	start = clock();
    int i,j,sum;  
    while(cin>>N>>M&&(N||M)){  
        sum=0;  
        for(i=0;i<N;i++)  
        for(j=0;j<M;j++)  
        cin>>S[i][j];  
        for(i=0;i<N;i++)  
        for(j=0;j<M;j++)  
        if(S[i][j]!='.'){  
        dfs(i,j,S[i][j]);  
        sum++;  
        }  
        printf("%d\n",sum);  
    }
	finish = clock();
	cout << finish-start   << "/" << CLOCKS_PER_SEC  << " (s) "<< endl;  
    return 0;  
}  
