#include<bits/stdc++.h>
using namespace std;
#define _rep(a,b,s) for(int i=a;i<=b;i+=s)
#define mem(a,num) memset(a,num,sizeof(a))
#define __rep(a) for(int i=1;i<=a;i++)
int dx[] = {0,1,0,-1};
int dy[] = {1,0,-1,0};
int w,h,ans=1;
bool vis[1001][1001];char mp[1001][1001];
void dfs(int x,int y){
_rep(0,4,1){
int xx=x+dx[i],yy=y+dy[i];
if(xx<=h&&xx>=0&&yy>=0&&yy<=w&&vis[xx][yy]&&mp[xx][yy]=='.'){
vis[xx][yy]=false;
ans++;
dfs(xx,yy);
}
}
}
int main(){
mem(vis,true);
cin>>w>>h;
int st,en;
__rep(h){
for(int j=1;j<=w;j++){
cin>>mp[i][j];
if(mp[i][j]=='@') st=i,en=j;
if(mp[i][j]=='#') vis[i][j]=false;
}
}vis[st][en]=false;
dfs(st,en);
cout<<ans;
return 0;
}