#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int broj_karaktera(char *mat, int redovi, int kolone, char sema) {

    int broj_karaktera = 0;

    for (int i = 0; i < redovi; i++) {
        for (int j = 0; j < kolone; j++) {

            if (*(mat+i*kolone + j)==sema){
                    broj_karaktera++;
            }
        }
    }

    return broj_karaktera;
}

bool prosiri_matricu(char *mat, int redovi, int kolone, char sema, char sema2) {

    int broj_promena = 0;

    for (int i = 0; i < redovi; i++) {
        for (int j = 0; j < kolone; j++) {

            if (*(mat+i*kolone + j)==sema){

                    // levo
                    if ((j-1)>=0) {
                        if ((*(mat+i*kolone + j-1) != '*')&&(*(mat+i*kolone + j-1) != sema)&&(*(mat+i*kolone + j-1) != sema2)) {
                            *(mat+i*kolone + j-1) = 'A';
                            broj_promena++;
                        }
                    };
                    // desno
                    if ((j+1)<kolone) {
                        if ((*(mat+i*kolone + j+1) != '*')&&(*(mat+i*kolone + j+1) != sema)&&(*(mat+i*kolone + j+1) != sema2)) {
                            *(mat+i*kolone + j+1) = 'A';
                            broj_promena++;
                        }
                    }
                    // gore
                    if ((i-1)>=0) {
                        if ((*(mat+(i-1)*kolone + j) != '*')&&(*(mat+(i-1)*kolone + j) != sema)&&(*(mat+(i-1)*kolone + j) != sema2)) {
                            *(mat+(i-1)*kolone + j) = 'A';
                            broj_promena++;
                        }
                    };
                    // dole
                    if ((i+1)<redovi) {
                        if ((*(mat+(i+1)*kolone + j) != '*')&&(*(mat+(i+1)*kolone + j) != sema)&&(*(mat+(i+1)*kolone + j) != sema2)) {
                            *(mat+(i+1)*kolone + j) = 'A';
                            broj_promena++;
                        }
                    };

            }

        }
    }

    // prebaci 'A' u sema

    for (int i = 0; i < redovi; i++) {
        for (int j = 0; j < kolone; j++) {
                if (*(mat+i*kolone + j)=='A'){
                    *(mat+i*kolone + j)=sema;
                }
        }
    }

    if (broj_promena==0) {
        return false;
    } else {
        return true;
    }
}

int main()
{
    int n, m;
    cin >> n >> m;

    char mat[n][m];


    for(int i=0; i<n; i++){
        for(int j=0; j<m; j++){
            cin >> mat[i][j];
        };
    };    

    bool vrti = true;

    while (vrti) {
        prosiri_matricu(&mat[0][0], n, m, 'X', 'S');
        vrti = prosiri_matricu(&mat[0][0], n, m, 'S', 'X');
    }

    cout << broj_karaktera(&mat[0][0], n, m, 'S') << endl;

    return 0;
}