#include<cstdio> const int maxn=21; int W,H,count=0; char a[maxn][maxn]; int dir[][2]={{-1,0},{1,0},{0,-1},{0,1}}; void dfs(int x,int y) { count++; a[x][y]='#'; for(int i=0;i<4;i++){ int nx=x+dir[i][0];int ny=y+dir[i][1]; if(nx>=0&&nx<H&&ny>=0&&ny<W&&a[nx][ny]=='.') dfs(nx,ny); } } void solve() { int i,j; for(i=0;i<H;i++) for(j=0;j<W;j++) if(a[i][j]=='@') dfs(i,j); printf("%d\n",count); } int main() { while(scanf("%d%d",&W,&H)==2){ if(W==0&&H==0) break; for(int i=0;i<H;i++) scanf("%s",a[i]); solve(); } return 0; }