#include<stdio.h>
#include<string.h>
using namespace std;
int m,n,ans,v[30][30],move[4][2]= {0,1,0,-1,1,0,-1,0};
char a[30][30];
void dfs(char c,int x,int y)
{
    for(int i = 0; i < 4; i ++)
    {
        int x1 = x+move[i][0];
        int y1 = y+move[i][1];
        if(x1>=0&&x1<m&&y1<n&&y1>=0&&a[x1][y1]==c&&!v[x1][y1])
        {
            v[x1][y1]=1;
            dfs(c,x1,y1);
        }
    }
    return;
}
int main()
{
    while(scanf("%d%d",&n,&m)&&n!=0&&m!=0)
    {
        getchar();
        int i,j;
        ans=0;
        memset(v,0,sizeof(v));
        for(i=0; i<m; i++)
            gets(a[i]);
        for(i=0; i<m; i++)
            for(j=0; j<n; j++)
                if(!v[i][j])
                {
                    dfs(a[i][j],i,j);
                    ans++;
                }
        printf("%d\n",ans);
    }
    return 0;
}