#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn=100;
char pic[maxn][maxn];
int m,n,idx[maxn][maxn];
void dfs(int a,int b,int id)
{
if(a<0||a>=m||b<0||b>=n) return;
if(idx[a][b]>0||pic[a][b]!='@') return;
idx[a][b]=id;//编号
for(int da=-1;da<=1;da++)
for(int db=-1;db<=1;db++)
if(da!=0||db!=0) dfs(a+da,b+db,id);
}
int main()
{
while(scanf("%d%d",&m,&n)==2&&m&&n)
{for(int i=0;i<m;i++) scanf("%s",pic[i]);//有m行,pic为字符数组。 ex a b c d; m行
memset(idx,0,sizeof(idx));
int cnt=0;
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
if(idx[i][j]==0&&pic[i][j]=='@') dfs(i,j,++cnt);
printf("%d/n",cnt);
}
return 0;
}