DFS
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
const int maxn = 105;
int idx[maxn][maxn];
char input[maxn][maxn];
int cnt;
void dfs(int m,int n,int x,int y,int id){
if(x<0||x>=m||y<0||y>=n) return;
if(idx[x][y]>0 || input[x][y]!='@') return;
idx[x][y] = id;
for(int dx=-1;dx<=1;dx++){
for(int dy=-1;dy<=1;dy++){
if(dx!=0 || dy!=0)
dfs(m,n,x+dx,y+dy,id);
}
}
}
int main(){
int m,n;
while(scanf("%d%d",&m,&n)==2&&m!=0){
memset(idx,0,sizeof(idx));
cnt=0;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++)
cin>>input[i][j];
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(input[i][j]=='@'&&idx[i][j]==0) dfs(m,n,i,j,++cnt);
}
}
cout<<cnt<<endl;
}
return 0;
}