oj red and black
#include<stdio.h>
#include<string.h>
char a[30][30];
int d(int h,int l,int n,int m)
{
if(h<0||l<0||h>n-1||l>m-1)
return 0;
else if(a[h][l]=='#')
return 0;
else if(a[h][l]=='.')
{
a[h][l]='#';
return 1+d(h,l-1,n,m)+d(h,l+1,n,m)+d(h-1,l,n,m)+d(h+1,l,n,m);
}
}
int main()
{
int m,n,h,l,i,j;
while(scanf("%d%d",&m,&n)!=EOF)
{
if(m==0)
break;
memset(a,0,sizeof(a));
for(i=0;i<n;++i)
scanf("%s",a[i]);
for(i=0;i<n;++i)
for(j=0;j<m;++j)
if(a[i][j]=='@')
{
a[i][j]='.';
printf("%d\n",d(i,j,n,m));
break;
}
}
return 0;
}