#include<stdio.h>

char map[30][30];
int cnt=0;
int w,h;

void DFS(int x,int y);
int main(){

  int i,j;

  while(1){
    scanf("%d %d",&w,&h);
    if(w==0 && h==0) break;
    
    for(i=0;i<h;i++){
      scanf("%s",map[i]);
    }
    
    for(i=0;i<h;i++){
      for(j=0;j<w;j++){
	if(map[i][j]=='@'){
	  DFS(j,i);
	  break;
	}
      }
    }
    
    printf("%d\n",cnt);
    cnt=0;
  }
  
  return 0;
}


void DFS(int x,int y){

  if(x<0 || y<0 || x>=w || y>=h) return;
  if(map[y][x]=='&' || map[y][x]=='#') return;

  map[y][x]='&';
  cnt++;

  DFS(x+1,y); DFS(x,y+1);
  DFS(x-1,y); DFS(x,y-1);


  return ;
}