#include<stdio.h> #include<string.h> int move[4][2]={{1,0},{-1,0},{0,1},{0,-1}}; int ans,n,m,si,sj; char map[22][22]; void dfs(int sx,int sy) { if(sx>=m||sy>=n||sx<0||sy<0) return; int i,tx,ty; ans++; for(i=0;i<4;i++) { tx=sx+move[i][0]; ty=sy+move[i][1]; if(map[tx][ty]=='.') { map[tx][ty]='#'; dfs(tx,ty); } } } int main() { int i,j; while(~scanf("%d%d",&n,&m)&&n+m) { getchar(); for(i=0;i<m;i++) { for(j=0;j<n;j++) { scanf("%c",&map[i][j]); if(map[i][j]=='@') { si=i; sj=j; } } getchar(); } ans=0; map[si][sj]='#'; dfs(si,sj); printf("%d\n",ans); } return 0; }