c,gx,gy,x,y,n,m;
char map[20][20];
check(a,b)
{
  map[a][b]=35;
  c++;
  if(a+1<gy&&map[a+1][b]==46)
    check(a+1,b);
  if(a>0&&map[a-1][b]==46)
    check(a-1,b);
  if(b+1<gx&&map[a][b+1]==46)
    check(a,b+1);
  if(b>0&&map[a][b-1]==46)
    check(a,b-1);
}
int main()
{
  for(;scanf("%d%d",&gx,&gy),gx;)
    {
      for(x=0;x<20;x++)
	for(y=0;y<20;)
	  map[x][y++]=35;
      for(c=n=0;n<gy;n++)
	{
	  scanf("%s",map[n]);
	  for(m=0;m<gx;m++)
	    if(map[n][m]==64)
	      x=n,y=m;
	}
      check(x,y);
      printf("%d\n",c);
    }
  exit(0);
}