#include<bits/stdc++.h>
using namespace std;

char matrica[1005][1005];
int N,M;

queue<int> qStevaR,qStevaC,qVatraR,qVatraC;
queue<int> QStevaR,QStevaC,QVatraR,QVatraC;
int sol=1;

int main(){
    ios_base::sync_with_stdio(false);
    cin>>N>>M;
    for(int i=1;i<N;++i)
    for(int j=1;j<M;++j){
        cin>>matrica[i][j];
        if(matrica[i][j]=='S'){
            qStevaR.push(i+1);
            qStevaC.push(j);
            qStevaR.push(i-1);
            qStevaC.push(j);
            qStevaR.push(i);
            qStevaC.push(j+1);
            qStevaR.push(i);
            qStevaC.push(j-1);
        }
        if(matrica[i][j]=='X'){
            qVatraR.push(i+1);
            qVatraC.push(j);
            qVatraR.push(i-1);
            qVatraC.push(j);
            qVatraR.push(i);
            qVatraC.push(j+1);
            qVatraR.push(i);
            qVatraC.push(j-1);
        }
    }
    while(!qVatraR.empty()||!qStevaR.empty()){
        while(!qVatraR.empty()){
            int i=qVatraR.front();
            qVatraC.pop();
            int j=qVatraC.front();
            qVatraR.pop();
            if(matrica[i][j]=='.'){
                matrica[i][j]='X';
                QVatraR.push(i-1);
                QVatraC.push(j);
                QVatraR.push(i);
                QVatraC.push(j-1);
                QVatraR.push(i+1);
                QVatraC.push(j);
                QVatraR.push(i);
                QVatraC.push(j+1);
            }
        }
        while(!qStevaR.empty()){
            int i=qStevaR.front();
            qStevaC.pop();
            int j=qStevaC.front();
            qStevaR.pop();
            if(matrica[i][j]=='.'){
                matrica[i][j]='S';
                QStevaR.push(i-1);
                QStevaC.push(j);
                QStevaR.push(i);
                QStevaC.push(j-1);
                QStevaR.push(i+1);
                QStevaC.push(j);
                QStevaR.push(i);
                QStevaC.push(j+1);
                ++sol;
            }
        }
        swap(qStevaC,QStevaC);
        swap(qStevaR,QStevaR);
        swap(qVatraC,QVatraC);
        swap(qVatraR,QVatraR);
    }
    cout<<sol<<'\n';
    return 0;
}