#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <queue>
#include <vector>
using namespace std;
int W,H;
char maps[22][22];
int vis[22][22];
int ans;
void dfs(int x,int y,char ch)
{
    if(x < 0 || x >= H|| y < 0 || y >= W)
        return;
    if(vis[x][y] || maps[x][y] != ch)
        return;
    vis[x][y] = 1;
    dfs(x - 1, y,ch);
    dfs(x , y - 1,ch);
    dfs(x + 1,y,ch);
    dfs(x , y + 1,ch);
}
int main()
{
    while(scanf("%d%d",&H,&W) != EOF)
    {
        if(!W && !H)
            break;
        int begx,begy;
        ans = 0;
        for(int i =  0;i < H;i++)
        {
            for(int j = 0 ;j < W;j++)
            {
                vis[i][j] = 0;
                scanf(" %c",&maps[i][j]);
            }
        }
        for(int i = 0;i < H;i++)
        {
            for(int j = 0;j < W;j++)
            {
                if(!vis[i][j])
                {
                    ans++;
                    dfs(i,j,maps[i][j]);
                }
            }
        }
        printf("%d\n",ans);
    }
    return 0;
}

