#include <bits/stdc++.h>
using namespace std;
#define MAXN 105
int m,n,cnt=0;
int book[MAXN][MAXN];
char g[MAXN][MAXN];
void dfs(int x, int y){
if(book[x][y]||g[x][y]!='@'){
return;
}
book[x][y]=1;
for(int i = y-1; i<=y+1; i++){
for(int j = x-1; j<=x+1; j++){
if(i>0&&i<=n&&j>0&&j<=m&&(i!=y||j!=x)&&g[j][i]=='@'){
dfs(j,i);
}
}
}
return;
}
int main(){
while(cin >> m >> n){
if(m==0&&n==0){
break;
}
cnt=0;
memset(g,0,sizeof(g));
memset(book,0,sizeof(book));
for(int i = 1; i<=m; i++){
for(int j = 1; j<=n; j++){
cin >> g[i][j];
}
}
for(int i = 1; i<=m; i++){
for(int j = 1; j<=n; j++){
if(g[i][j]=='@'&&!book[i][j]){
cnt++;
dfs(i,j);
}
}
}
cout << cnt << endl;
}
return 0;
}
谢谢