#include <bits/stdc++.h>

using namespace std;

int n,m,u=1;
string S[1010];
queue<pair<int,int>> Q;

void v(int x,int y)
{
    if(x<1 || n<x || y<1 || m<y) return;
    if(S[x][y]!='.') return;
    S[x][y] = 'X';
    Q.push({x,y});
    return;
}

void s(int x,int y)
{
    if(x<1 || n<x || y<1 || m<y) return;
    if(S[x][y]!='.') return;
    S[x][y] = 'S';
    Q.push({x,y});
    u++;
    return;
}

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(NULL);
    cin >> n >> m;
    for(int i=1; i<=n; i++)
    {
        cin >> S[i];
        S[i] = ' ' + S[i];
    }
    for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) if(S[i][j]=='X') Q.push({i,j});
    for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) if(S[i][j]=='S') Q.push({i,j});
    while(!Q.empty())
    {
        pair<int,int> c = Q.front();
        Q.pop();
        int x=c.first,y=c.second;
        if(S[x][y]=='X')
        {
            v(x-1,y);
            v(x+1,y);
            v(x,y-1);
            v(x,y+1);
        }
        else
        {
            s(x-1,y);
            s(x+1,y);
            s(x,y-1);
            s(x,y+1);
        }
    }
    printf("%d\n",u);
    return 0;
}