#include<stdio.h>
#define N 20

int cur;

void goAble(char map[N][N],int h,int w,int x,int y){
  if(x<0 || w<=x || y<0 || h<=y) return ;
  if(map[y][x]=='#' || map[y][x]=='+') return ;

  map[y][x]='+';
  cur++;

  goAble(map,h,w,x-1,y);
  goAble(map,h,w,x+1,y);
  goAble(map,h,w,x,y-1);
  goAble(map,h,w,x,y+1);

  return ;
}

int main(void){
  int i,j;
  int w,h;
  char map[N][N];
  char hoge;
  int x,y;

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

    for(i=0;i<h;i++){
      scanf("%c",&hoge);
      for(j=0;j<w;j++){
        scanf("%c",&map[i][j]);
        if(map[i][j]=='@'){
          x=j;
          y=i;
        }
      }
    }

    cur=0;
    goAble(map,h,w,x,y);

    printf("%d\n",cur);
  }

  return 0;
}