//DFS
#include<stdio.h>
#include<string.h>
#define N 105
char mp[N][N];
int vis[N][N];
int m,n,cnt;
int dir[8][2] = {{-1,-1},{-1,0},{-1,1}, //八个方向
{0,-1},{0,1},
{1,-1},{1,0},{1,1}};
void DFS(int x,int y)
{
vis[x][y] = 1;
mp[x][y] = '*';
int i,dx,dy;
for(i=0;i<8;i++) //对周围的八个方向探索
{
dx = x+dir[i][0];
dy = y+dir[i][1];
if (dx>=0 && dx<m && dy>=0 && dy<n && mp[dx][dy]=='@')
DFS(dx,dy);
}
}
int main()
{
int i,j;
int oil;
while(scanf("%d%d",&m,&n)!=EOF && m!=0)
{
getchar();
oil = 0;
for(i=0;i<m;i++)
{
scanf("%s",mp[i]);
getchar();
}
cnt = 0;
memset(vis,0,sizeof(vis));
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if (!vis[i][j] && mp[i][j]=='@')//找到一个则调用DFS
{
cnt++;
DFS(i,j);
}
printf("%d\n",cnt);
}
return 0;
}