#include <iostream>
#include <string.h>
using namespace std;
int ans,m,n;
char a[30][30]; //设置为全局变量方便函数引用
int qx[] = { 1, 0, -1, 0};//模拟坐标位移
int qy[] = { 0, -1, 0, 1};
void dfs(int x,int y){
for(int i = 0;i < 4;i ++){ //任意一种运动的遍历
int xx = x + qx[i]; //位移后的x
int yy = y + qy[i]; //位移后的y
if(xx < 0 || yy < 0 || xx > n || yy > m){
continue;//边界
}
if(a[xx][yy] == '.'){
ans++;
a[xx][yy] = '#';
dfs(xx,yy);
}
}
}
int main()
{
int x,y;
while(cin >> m >> n){
ans = 0;
if(m + n == 0)break;
memset(a,0,sizeof(a) / sizeof(a[0][0]));//每次都要初始化
for(int i = 0;i < n;i ++){
for(int j = 0;j < m;j ++){
cin >> a[i][j];
if(a[i][j] == '@'){
x = i;
y = j;
}
}
}
dfs(x,y);
cout << ans + 1 << endl;
}
return 0;
}