#include <iostream>
#include <bits/stdc++.h>
#define maxn 100+10
using namespace std;
char buf[maxn][maxn];
bool vis[maxn][maxn];
int m,n;
void dfs(int x,int y)
{
if(x<0||x>=m||y<0||y>=n) return;//出格
if(vis[x][y]||buf[x][y]!='@') return;
vis[x][y] = 1;
for(int i = -1;i<2;i++)
{
for(int j = -1;j<2;j++)
{
dfs(x+i,y+j);
}
}
}
int main()
{
while(cin>>m>>n&&m&&n)
{
int cnt = 0;
memset(vis,0,sizeof(vis));
for(int i = 0;i<m;i++)
{
for(int j = 0;j<n;j++)
{
cin>>buf[i][j];
}
}
for(int i = 0;i<m;i++)
{
for(int j = 0;j<n;j++)
{
if(!vis[i][j]&&buf[i][j]=='@')
{
cnt++;
dfs(i,j);
}
}
}
cout<<cnt<<endl;
}
return 0;
}
/**
1 1
*
3 5
*@*@*
**@**
*@*@*
1 8
@@****@*
5 5
****@
*@@*@
*@**@
@@@*@
@@**@
0 0
**/