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
****************************************************************/