/*
本题是典型的DFS思路,即在读取当前位置为@时,即刻进行DFS,扫描周围八个方向的位置是否为@
*/
#include <iostream>
#include<cstdio>
#include<string>
#include<map>
#include<vector>
#include<sstream>
#include<string.h>
using namespace std;
const int maxn=100+5;
char ch[maxn][maxn];
int m,n;
int dx[]={-1,-1,-1,0,0,1,1,1};
int dy[]={-1,0,1,-1,1,-1,0,1};
bool check(int x,int y){return x>=0&&x<m&&y>=0&&y<n;}
void dfs(int row,int col){
ch[row][col]='*';
for(int i=0;i<8;++i){
int x=row+dx[i],y=col+dy[i];
if(check(x,y)&&ch[x][y]=='@')dfs(x,y);
}
}
int main()
{
while(scanf("%d%d",&m,&n)&&m){
int ans=0;
memset(ch,0,sizeof(ch));
for(int i=0;i<m;++i){
for(int j=0;j<n;++j)cin>>ch[i][j];
}
for(int i=0;i<m;++i){
for(int j=0;j<n;++j){
if(ch[i][j]=='@'){
++ans;
dfs(i,j);
}
}
}
printf("%d\n",ans);
}
return 0;
}