1 #include <iostream>
2 #include <cstring>
3
4 using namespace std;
5 char map[110][110];
6 int dir[8][2] = {{0,1},{0,-1},{1,0},{-1,0},{1,-1},{1,1},{-1,-1},{-1,1}};
7 int m, n;
8 void DFS(int di, int dj)
9 {
10
11 for(int i = 0; i < 8; i++)
12 {
13 int dx = di + dir[i][0];
14 int dy = dj + dir[i][1];
15 if(dx<m&&dx>=0&&dy<n&&dy>=0&&map[dx][dy]=='@')
16 {
17 map[dx][dy] = '#';
18 DFS(dx, dy);
19 }
20 }
21
22 }
23 int main()
24 {
25 while(cin >> m >> n && (m||n)){
26
27 for(int i = 0; i < m; i++)
28 for(int j = 0; j < n; j++){
29 cin >> map[i][j];
30 }
31
32 int cnt = 0;
33 for(int i = 0; i < m; i++)
34 for(int j = 0; j < n; j++)
35 if(map[i][j] == '@'){
36 map[i][j] = '#';
37 cnt++;
38 DFS(i, j);
39 }
40 cout << cnt << endl;
41 }
42 return 0;
43 }