#include <string.h>

int w,h;
int dir[4][2]={{-1,0},{0,1},{1,0},{0,-1}};
char map[22][22];

int solve(int i,int j){
  int k,total=1;

  map[i][j] = '#';
  for(k=0;k<4;k++){
    if(map[i+dir[k][0]][j+dir[k][1]]=='.'){total+=solve(i+dir[k][0],j+dir[k][1]);}
  }

  return total;
}

int main(void){
  int i,j,si,sj;

  while(1){
    scanf("%d%d",&w,&h);
    if(!w && !h) break;

    memset(map,'#',sizeof(map));
    for(i=1;i<=h;i++){
      scanf("%s",&map[i][1]);
      map[i][w+1] = '#';
      for(j=1;j<=w;j++){
        if(map[i][j]=='@'){si=i,sj=j;}
      }
    }

    printf("%d\n",solve(si,sj));
  }

  return 0;
}