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