#include<bits/stdc++.h>
using namespace std;
int n,m;
char a[25][25];
int ans;
int vis[25][25];
int dx[5]={0,1,0,0,-1};
int dy[5]={0,0,1,-1,0};
typedef struct{
int x,y;
}Node;
queue<Node>q;
Node qi;
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
if(a[i][j]=='@')
{
qi.x=i;
qi.y=j;
}
}
}
q.push(qi);
vis[qi.x][qi.y]=1;
while(!q.empty())
{
Node x=q.front();
q.pop();
int fx=x.x;
int fy=x.y;
for(int i=1;i<=4;i++)
{
int mx=fx+dx[i],my=fy+dy[i];
if(mx<1||mx>n||my<1||my>m||a[mx][my]=='#'||vis[mx][my]==1)continue;
vis[mx][my]=1;
Node jin;
jin.x=mx;
jin.y=my;
q.push(jin);
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(vis[i][j]==1)ans++;
}
}
cout<<ans;
}