#include<bits/stdc++.h>
using namespace std;
int n,m,sx,sy,sum;
char c[100][100];
int dis[4][2]={1,0,-1,0,0,1,0,-1};
int vis[100][100];
struct node{
int x,y;
};
queue<node> Q;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>c[i][j];
if(c[i][j]=='@'){
sx=i;
sy=j;
}
}
}
Q.push({sx,sy});
while(!Q.empty()){
node u=Q.front();
Q.pop();
int ux=u.x,uy=u.y;
for(int i=0;i<4;i++){
int dx=ux+dis[i][0];
int dy=uy+dis[i][1];
if(dx<1||dy<1||dx>n||dy>m||vis[dx][dy]1||c[dx][dy]'#'){
continue;
}
Q.push({dx,dy});
vis[dx][dy]=1;
sum++;
}
}
cout<<sum;
return 0;
}