#include <iostream>
#include <cstdio>
using namespace std;
int w,h,add;
char arr[25][25];
int dfs(int i,int j)
{
if(arr[i][j]=='.'||arr[i][j]=='@')
{
add++;
arr[i][j]='#';
dfs(i-1,j);
dfs(i+1,j);
dfs(i,j-1);
dfs(i,j+1);
}
else if(arr[i][j]=='#'||i<0||j<0||i>=h||j>=w)
{
return 0;
}
}
int main()
{
int i,j;
while (scanf("%d%d",&w,&h)!=EOF)
{
getchar();
if(w==0&&h==0)
{
return 0;
}
for(i=0;i<h;i++)
{
gets(arr[i]);
}
for(i=0;i<h;i++)
for(j=0;j<w;j++)
{
if(arr[i][j]=='@')
{
dfs(i,j);
cout << add << endl;
}
}
}
return 0;
}
#include <cstdio>
using namespace std;
int w,h,add;
char arr[25][25];
int dfs(int i,int j)
{
if(arr[i][j]=='.'||arr[i][j]=='@')
{
add++;
arr[i][j]='#';
dfs(i-1,j);
dfs(i+1,j);
dfs(i,j-1);
dfs(i,j+1);
}
else if(arr[i][j]=='#'||i<0||j<0||i>=h||j>=w)
{
return 0;
}
}
int main()
{
int i,j;
while (scanf("%d%d",&w,&h)!=EOF)
{
getchar();
if(w==0&&h==0)
{
return 0;
}
for(i=0;i<h;i++)
{
gets(arr[i]);
}
for(i=0;i<h;i++)
for(j=0;j<w;j++)
{
if(arr[i][j]=='@')
{
dfs(i,j);
cout << add << endl;
}
}
}
return 0;
}