#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<stdbool.h>

int max(int a,int b){if(a>b){return a;}return b;}
int min(int a,int b){if(a<b){return a;}return b;}
int sortfncsj(const void *a,const void *b){if(*(int *)a>*(int *)b){return 1;}if(*(int *)a==*(int *)b){return 0;}return -1;}

int dx4[4]={1,-1,0,0};
int dy4[4]={0,0,1,-1};

int r,h,w;
int fl[32][32];
char s[32][32];

void rep(int p,int q){
  if(p<0 || h<=p){return;}
  if(q<0 || w<=q){return;}
  if(fl[p][q]==1){return;}
  if(s[p][q]=='#'){return;}
  //printf("<%d %d>\n",p,q);
  int i;
  fl[p][q]=1;
  r++;
  for(i=0;i<4;i++){
    rep(p+dx4[i],q+dy4[i]);
  }
}

int main(){
  int i,j,p,q;
  while(scanf("%d%d",&w,&h),w!=0){
    r=0;
    for(i=0;i<h;i++){
      scanf("%s",s[i]);
      for(j=0;j<w;j++){
        fl[i][j]=0;
        if(s[i][j]=='@'){p=i;q=j;}
      }
    }
    rep(p,q);
    printf("%d\n",r);
  }
  return 0;
}

