//搜八个方向即可
#include<stdio.h>
#include<string.h>
#define N 200
char ma[N][N];
int n,m,vis[N][N];
int dis[8][2]={1,0,-1,0,0,1,0,-1,1,1,1,-1,-1,1,-1,-1};
void dfs(int x,int y) {
int i,xx,yy;
vis[x][y]=1;
for(i=0;i<8;i++) {
xx=x+dis[i][0];
yy=y+dis[i][1];
if(ma[xx][yy]=='@'&&!vis[xx][yy]&&xx>=1&&xx<=n&&yy>=1&&yy<=m)
dfs(xx,yy);
}
return ;
}
int main() {
int i,j,k;
while(scanf("%d%d",&n,&m),n||m) {
for(i=1;i<=n;i++)
scanf("%s",ma[i]+1);
memset(vis,0,sizeof(vis));
k=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(vis[i][j]==0&&ma[i][j]=='@') {
dfs(i,j);k++;
}
printf("%d\n",k);
}
return 0;}