#include <bits/stdc++.h>
using namespace std;
char oil[1010][1010];
bool st[1010][1010];
int n,m;
int dx[]={-1,-1,-1,0,0,1,1,1};
int dy[]={-1,0,1,-1,1,-1,0,1};
void dfs(int u,int v){
st[u][v]=true;
for(int i=0;i<8;i++)
{
int x=u+dx[i],y=v+dy[i];
if(x>=1 && x<=n && y>=1 && y<=m && !st[x][y] && oil[x][y]=='@')
dfs(x,y);
}
}
int main(){
while(cin>>n>>m)
{
if(n == m ==0) return 0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>oil[i][j];
int cnt=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
if(oil[i][j] =='@' && !st[i][j])
{
dfs(i,j);
cnt++;
}
}
cout<<cnt<<endl;
}
}