#include<cstdio>
#include<cstring>
using namespace std;
const int dx[5]={0,-1,0,1,0};
const int dy[5]={0,0,1,0,-1};
int m,n,sx,sy,ans;
bool if_[20][20];
char map[20][20];
void search(int x,int y)
{
if_[x][y]=false;
ans++;
for(int i=1;i<=4;i++)
{
if(x+dx[i]>=0&&x+dx[i]<n&&y+dy[i]>=0&&y+dy[i]<m)
{
if(if_[x+dx[i]][y+dy[i]])
{
search(x+dx[i],y+dy[i]);
}
}
}
}
int main()
{
while(scanf("%d%d",&m,&n)==2)
{
if(m==n&&n==0) break;
memset(if_,true,sizeof(if_));
ans=0;
for(int i=0;i<n;i++)
{
scanf("%s",map[i]);
for(int j=0;j<m;j++)
{
if(map[i][j]=='@') sx=i,sy=j;
if(map[i][j]=='#') if_[i][j]=false;
}
}
search(sx,sy);
/*for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(if_[i][j]) printf("1 ");
else printf("0 ");
}
printf("\n");
}*/
printf("%d\n",ans);
}
return 0;
}