//新生训练
#include <iostream>
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;
int a, b, sum;
char c[20][20];
void dfs(int x, int y)
{c[x][y] = '#';if (x - 1 >= 0 && c[x - 1][y] == '.'){sum++;dfs(x - 1, y);}if (x + 1 < b && c[x + 1][y] == '.'){sum++;dfs(x + 1, y);}if (y - 1 >= 0 && c[x][y - 1] == '.'){sum++;dfs(x, y - 1);}if (y + 1 < a && c[x][y + 1] == '.'){sum++;dfs(x, y + 1);}
}
int main()
{int i, j, i1, j1;while (cin >> a >> b, a != 0 && b != 0){sum = 1;for (i = 0; i < b; i++){for (j = 0; j < a; j++){cin >> c[i][j];if (c[i][j] == '@'){i1 = i;j1 = j;}}}dfs(i1, j1);cout << sum << endl;}return 0;
}
//入门 DFS ,由于都类似于迷宫这一类题目,所以需要注意的是要有“撞墙回头”的标志;
~~~//仅当笔者个人备忘录使用。