#include<stdio.h>
#include<string.h>
int dir[8][2]={{0,1},{1,0},{0,-1},{-1,0},{1,1},{-1,-1},{1,-1},{-1,1}};
int z;
char a[110][110];
int b[110][110];
void sousuo(int xi,int xj)
{
for(int i=0;i<=7;i++)
{
if(a[xi+dir[i][0]][xj+dir[i][1]]=='@'&&b[xi+dir[i][0]][xj+dir[i][1]]==0)
{
b[xi+dir[i][0]][xj+dir[i][1]]=z;
// printf("xi=%d xj=%d\n",xi,xj);
sousuo(xi+dir[i][0],xj+dir[i][1]);
}
}
}
int main()
{ int m,n,i,j;
while(scanf("%d%d",&m,&n)!=EOF)
{
getchar(); z=0;
if(m==0) break;
for(i=0;i<=m-1;i++)
{
gets(a[i]);
//不要加getchar(),不然会错,检查了好久;
}
for(i=0;i<=m-1;i++)
{
for(j=0;j<=n-1;j++)
{b[i][j]=0;
//printf("%c",a[i][j]);
}
// printf("\n");
}
for(i=0;i<=m-1;i++)
{
for(j=0;j<=n-1;j++)
if(a[i][j]=='@'&&b[i][j]==0)
{z++;b[i][j]=z;sousuo(i,j);/*printf("i=%d,j=%d\n",i,j);*/}
}
/* for(i=0;i<=m-1;i++)
{
for(j=0;j<=n-1;j++)
printf("%d",b[i][j]);
printf("\n");
}*/
printf("%d\n",z);
}
}