#include <iostream>
#include <cstdio>
using namespace std;
int W, H;
char map[21][21];
int move[8][2] = { {-1, 0}, {0, 1}, {1, 0}, {0, -1} };
void DFS( int xx, int yy ) {
if ( xx >= H || yy >= W || xx < 0 || yy < 0 ) return ;
int i(0);
for (i = 0; i != 4; ++i) {
int mx = xx + move[i][0];
int my = yy + move[i][1];
if (map[mx][my] == '.') {
map[mx][my] = '*';
DFS(mx, my);
}
}
return ;
}
int main() {
while ( scanf("%d%d", &W, &H) , W||H) {
int x, y;
int i(0), j(0);
for ( i = 0; i != H; ++i){
scanf("%s", map[i]);
for ( j = 0; j != W; ++j)
if (map[i][j] == '@'){
x = i; y = j;
}
}
map[x][y] = '*';
DFS(x, y);
int answer(0);
for ( i = 0; i != H; ++i )
for ( j = 0; j != W; ++j )
if (map[i][j] == '*')
++answer;
printf("%d\n", answer);
}
}