又做了一次油田
import java.util.Scanner;
public class UVA572 {
static int[] dx={1,-1,0,0,1,-1,1,-1};
static int[] dy={0,0,1,-1,1,-1,-1,1};
static int m,n;
static char[][] map=new char[100][100];
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(true){
m=sc.nextInt();
n=sc.nextInt();
if(m==0&&n==0)break;
for (int i = 0; i < m; i++) {
map[i]=new char[n];
}
for (int i = 0; i < m; i++) {
String s=sc.next();
for (int j = 0; j < n; j++) {
map[i][j]=s.charAt(j);
}
}
int ans=0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if(map[i][j]=='@'){
dfs(i,j);
ans++;
}
}
}
System.out.println(ans);
}
}
static void dfs(int x,int y){
map[x][y]='*';
for (int i = 0; i < 8; i++) {
int x1=x+dx[i];
int y1=y+dy[i];
if(x1>=0&&x1<m&&y1>=0&&y1<n&&map[x1][y1]=='@'){
dfs(x1,y1);
}
}
}
}