#include <iostream>
#include <bits/stdc++.h>

using namespace std;

#define endl "\n"
#define ll long long

vector<vector<int>> mat;
vector<pair<int, int>> sp;
vector<pair<int, int>> fp;
int n, m;
int ans=1;
int np;

void rec(){
    np=0;
    for(auto x:fp){
        if(x.first>0 && mat[x.first-1][x.second]=='.'){
            mat[x.first-1][x.second]='X';
            fp.push_back({x.first-1, x.second});
        }
        if(x.first<n-1 && mat[x.first+1][x.second]=='.'){
            mat[x.first+1][x.second]='X';
            fp.push_back({x.first+1, x.second});
        }
        if(x.second>0 && mat[x.first][x.second-1]=='.'){
            mat[x.first][x.second-1]='X';
            fp.push_back({x.first, x.second-1});
        }
        if(x.second<m-1 && mat[x.first][x.second+1]=='.'){
            mat[x.first][x.second+1]='X';
            fp.push_back({x.first, x.second+1});
        }
    }
    for(auto x:sp){
        if(x.first>0 && mat[x.first-1][x.second]=='.'){
            mat[x.first-1][x.second]='S';
            sp.push_back({x.first-1, x.second});
            np++;
            ans++;
        }
        if(x.first<n-1 && mat[x.first+1][x.second]=='.'){
            mat[x.first+1][x.second]='S';
            sp.push_back({x.first+1, x.second});
            np++;
            ans++;
        }
        if(x.second>0 && mat[x.first][x.second-1]=='.'){
            mat[x.first][x.second-1]='S';
            sp.push_back({x.first, x.second-1});
            np++;
            ans++;
        }
        if(x.second<m-1 && mat[x.first][x.second+1]=='.'){
            mat[x.first][x.second+1]='S';
            sp.push_back({x.first, x.second+1});
            np++;
            ans++;
        }
    }
    if(np){
        rec();
    }
}

int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);
    cin >> n >> m;
    mat.resize(n);
    for(int i=0; i<n; i++){
        for(int j=0; j<m; j++){
            char p;
            cin >> p;
            mat[i].push_back(p);
            if(mat[i][j]=='S'){
                sp.push_back({i, j});
            }
            else if(mat[i][j]=='X'){
                fp.push_back({i, j});
            }
        }
    }
    rec();
    cout << ans;
}