#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define MAX 27
using namespace std;
int n,m,sx,sy;
int mp[MAX][MAX];
int cnt;
char s[50];
int dx[]={0,1,-1,0,0};
int dy[]={0,0,0,1,-1};
void dfs ( int x = sx , int y = sy )
{
for ( int i = 1 ; i <= 4 ; i++ )
if ( mp[x+dx[i]][y+dy[i]] )
{
cnt++;
mp[x+dx[i]][y+dy[i]] = 0;
dfs ( x+dx[i],y+dy[i] );
}
}
int main ( )
{
while ( ~scanf ( "%d%d" , &m , &n ) )
{
if ( !n && !m ) break;
memset ( mp , 0 , sizeof ( mp ) );
cnt = 1;
for ( int i = 1 ; i <= n ; i++ )
{
scanf ( "%s" , s+1 );
for ( int j = 1 ; j <= m ; j++ )
if ( s[j] == '.' ) mp[i][j] = 1;
else if ( s[j] == '@' ) sx = i , sy = j;
}
dfs ( );
printf ( "%d\n" , cnt );
}
}