#include<bits/stdc++.h>
using namespace std;
const int maxn=107;
char g[maxn][maxn];
int n,m,T,vis[maxn][maxn],cnt;
int dir[8][2]={1,0,0,1,-1,0,0,-1,1,1,1,-1,-1,-1,-1,1};
int check(int x,int y){
if(x>=0&&x<n&&y>=0&&y<m) return 1;
return 0;
}
void dfs(int x,int y){
for(int i=0;i<8;i++){
int tx=x+dir[i][0],ty=y+dir[i][1];
if(!vis[tx][ty]&&check(tx,ty)){
vis[tx][ty]=1;
dfs(tx,ty);
}
}
}
int main(){
while(cin>>n>>m){
if(n==0&&m==0) break;
cnt=0;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
cin>>g[i][j];
vis[i][j]=0;
if(g[i][j]=='*')
vis[i][j]=1;
}
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
if(!vis[i][j]){
cnt++;
dfs(i,j);
}
}
cout<<cnt<<endl;
}
}
01-29
133