1 #include<stdio.h>
2 char m[20][20];
3 int r,c,count;
4 void cnt(int i,int j)//统计连续黑砖的块数
5 {
6 if(m[i][j]=='#'||(i<0||j<0)||(i>r-1||j>c-1))//边界条件,除去
7 return;
8 m[i][j]='#';//发现了一个新的黑砖,置'#',下次不在访问
9 count++; //count+1
10 cnt(i,j-1);//往左寻找
11 cnt(i-1,j);//往上寻找
12 cnt(i,j+1);//往右寻找
13 cnt(i+1,j);//往下寻找
14 }
15 int main()
16 {
17 int i,j,x,y;
18 while(scanf("%d%d",&c,&r),r||c){
19 for(count=i=0;i<r;++i){
20 getchar();
21 for(j=0;j<c;++j){
22 m[i][j]=getchar();
23 if(m[i][j]=='@'){//查找起始点
24 x=i;
25 y=j;
26 }
27 }
28 }
29 cnt(x,y);
30 printf("%d\n",count);
31 }
32 return 0;
33 }