#include<iostream>
using namespace std;
int dx[4] = {0, 1, 0, -1}, dy[4] = {1, 0, -1, 0};
int h, w, ans, vis[105][105];
char G[105][105];
void dfs(int x, int y, char c)
{
    vis[x][y] = 1;
    for(int i = 0; i < 4; i++)
        if(!vis[x + dx[i]][y + dy[i]] && G[x + dx[i]][y + dy[i]] == c) dfs(x + dx[i], y + dy[i], c);
    return;
}
int main()
{
    while(true)
    {
        cin >> h >> w;
        if(h == 0 && w == 0) return 0;
        ans = 0;
        for(int i = 0; i < 105; i++)
            for(int j = 0; j < 105; j++)
            {
                G[i][j] = '.';
                vis[i][j] = 0;
            }
        for(int i = 1; i <= h; i++)
            for(int j = 1; j <= w; j++)
                cin >> G[i][j];
        for(int i = 1; i <= h; i++)
            for(int j = 1; j <= w; j++)
                if(!vis[i][j])
                {
                    dfs(i, j, G[i][j]);
                    ans++;
                }
        cout << ans << endl;
    }
    return 0;
}

