#include <stdio.h> char grid[100][100]; int visited[100][100]; void dfs(int x, int y) { int i, j; // 设为访问过 visited[x][y] = 1; for (i = x-1; i<= x+1; i++) for (j = y-1; j <= y+1; j++) if (i >= 0 && j>= 0 && !visited[i][j] && grid[i][j] == '@') dfs(i, j); } int main() { int rows, columns; int i, j, sum; while (scanf("%d%d\n", &rows, &columns), rows, columns) { for (i = 0; i < rows; i++) { gets(grid[i]); for (j = 0; j < columns; j++) visited[i][j] = 0; } for (i = sum =0; i < rows; i++) for (j = 0; j < columns; j++) if (!visited[i][j] && grid[i][j] == '@') { sum++; dfs(i, j); } printf("%d\n", sum); } return 0; }