#include<stdio.h> #include<string.h> #include<stdlib.h> int n,m; int hash[105][105]; char map[105][105]; int isok(int i,int j) { if(i>=0&&i<n&&j>=0&&j<m&&map[i][j]=='@'&&!hash[i][j]) return 1; return 0; } void DFS(int x,int y) { hash[x][y]=1; if(isok(x-1,y)) { DFS(x-1,y); } if(isok(x-1,y-1)) { DFS(x-1,y-1); } if(isok(x-1,y+1)) { DFS(x-1,y+1); } if(isok(x,y-1)) { DFS(x,y-1); } if(isok(x,y+1)) { DFS(x,y+1); } if(isok(x+1,y-1)) { DFS(x+1,y-1); } if(isok(x+1,y)) { DFS(x+1,y); } if(isok(x+1,y+1)) { DFS(x+1,y+1); } } int main() { while(scanf("%d%d",&n,&m),n|m) { int sum=0; memset(hash,0,sizeof(hash)); for(int i=0;i<105;i++) { for(int j=0;j<105;j++) { map[i][j]=-1; } } for(int i=0;i<n;i++) { scanf("%s",map[i]); } for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { if(isok(i,j)) { sum++; DFS(i,j); } } } printf("%d\n",sum); } //system("pause"); return 0; }