import java.util.Scanner;
public class Main {
static int m,n;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(in.hasNextInt()){
n = in.nextInt();
m = in.nextInt();
if(n==0&&m==0)
break;
String[] s = new String[m];
char[][] maze = new char[m][n];
int[][] idx = new int[m][n];
for(int i=0;i<m;i++){
s[i] = in.next();
maze[i] = s[i].toCharArray();
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(idx[i][j]==0&&maze[i][j]=='@')
dfs(i,j,idx,maze,1);
}
}
int cnt=0;
for(int i=0;i<m;i++)
for(int j=0;j<n;j++){
if(idx[i][j]>0)
cnt++;
}
System.out.println(cnt);
}
}
public static void dfs(int r,int c,int[][]idx,char[][] maze,int id){
if(r<0||r>=m||c<0||c>=n)
return;
if(idx[r][c]>0||maze[r][c]=='#')
return;
idx[r][c] = id;
dfs(r+1,c,idx,maze,id);
dfs(r-1,c,idx,maze,id);
dfs(r,c+1,idx,maze,id);
dfs(r,c-1,idx,maze,id);
}
}
/**************************************************************
Problem: 2126
User: admin
Language: Java
Result: Accepted
Time:690 ms
Memory:40124 kb
****************************************************************/