#include <bits/stdc++.h>

using namespace std;

char matrica[1010][1010];
int matricaS[1010][1010];
int matricaX[1010][1010];
int n = 0, m = 0;

void udaljenostSteve(int dubina, int it, int jt){
    matricaS[it][jt] = dubina;
    if(it!=0){
        if(matricaS[it-1][jt] == 0 or dubina+1 < matricaS[it-1][jt]){
            udaljenostSteve(dubina+1, it-1, jt);
        }
    }
    if(jt!=m-1){
        if(matricaS[it][jt+1] == 0 or dubina+1 < matricaS[it][jt+1]){
            udaljenostSteve(dubina+1, it, jt+1);
        }
    }
    if(it!=n-1){
        if(matricaS[it+1][jt] == 0 or dubina+1 < matricaS[it+1][jt]){
            udaljenostSteve(dubina+1, it+1, jt);
        }
    }
    if(jt!=0){
        if(matricaS[it][jt-1] == 0 or dubina+1 < matricaS[it][jt-1]){
            udaljenostSteve(dubina+1, it, jt-1);
        }
    }
}

void udaljenostVatre(int dubina, int it, int jt){
    matricaX[it][jt] = dubina;
    if(it!=0){
        if(matricaX[it-1][jt] == 0 or dubina+1 < matricaX[it-1][jt]){
            udaljenostVatre(dubina+1, it-1, jt);
        }
    }
    if(jt!=m-1){
        if(matricaX[it][jt+1] == 0 or dubina+1 < matricaX[it][jt+1]){
            udaljenostVatre(dubina+1, it, jt+1);
        }
    }
    if(it!=n-1){
        if(matricaX[it+1][jt] == 0 or dubina+1 < matricaX[it+1][jt]){
            udaljenostVatre(dubina+1, it+1, jt);
        }
    }
    if(jt!=0){
        if(matricaX[it][jt-1] == 0 or dubina+1 < matricaX[it][jt-1]){
            udaljenostVatre(dubina+1, it, jt-1);
        }
    }
}

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> m;
    int is = 0, js = 0;
    string unos = "";
    for(int i = 0 ; i < n ; i++){
        cin >> unos;
        for(int j = 0; j < m; j++){
            matrica[i][j] = unos[j];
            if(matrica[i][j] == '*'){
                matricaS[i][j] = -1;
                matricaX[i][j] = -1;
            }
            if(matrica[i][j] == 'S'){
                is = i;
                js = j;
            }
        }
    }
    udaljenostSteve(1, is, js);
    for(int i = 0 ; i < n ; i++){
        for(int j = 0 ; j < m ; j++){
            if(matrica[i][j] == 'X'){
                udaljenostVatre(1, i, j);
            }
        }
    }
    int rez = 0;
    for(int i = 0 ; i < n; i++){
        for(int j = 0; j < m; j++){
            if(matricaS[i][j] < matricaX[i][j]){
                rez++;
            }
            if(matricaS[i][j] == 0 and matricaX[i][j] != 0){
                rez--;
            }
            if(matricaS[i][j] != 0 and matricaX[i][j] == 0){
                rez++;
            }
        }
    }
    cout << rez;
    return 0;
}