#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>

using namespace std;

int h, w, ans;
int dx[4]={1, 0, -1, 0};
int dy[4]={0, 1, 0, -1};
char maze[105][105];

void dfs(int x, int y)
{
    char temp =maze[x][y];
    maze[x][y]=0;
    for(int i=0; i<4; i++)
    {
        int nx=x+dx[i];
        int ny=y+dy[i];
        if(nx>=0&&ny>=0&&nx<h&&ny<w&&maze[nx][ny]==temp)
            dfs(nx, ny);
    }
    return;
}

int main(void)
{
    cin>>h>>w;
    while(h!=0||w!=0)
    {
        ans=0;
        memset(maze, 0, sizeof(maze));
        for(int i=0; i<h; i++)
            for(int j=0; j<w; j++)
                cin>>maze[i][j];
        for(int i=0; i<h; i++)
            for(int j=0; j<w; j++)
            {
                if(maze[i][j]=='@'||maze[i][j]=='#'||maze[i][j]=='*')
                {
                    ans++;
                    dfs(i, j);
                }
            }
        cout<<ans<<endl;
        cin>>h>>w;
    }
    return 0;
}
