#include <iostream>

using namespace std;

int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    char mat[n][m];
    int rez=1;
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
        {
            cin>>mat[i][j];
        }
    }

    if(n==1)
    {
        n--;
        int pozvl=-1,pozvd=-1,pozs;
        for(int i=0; i<m; i++)
        {
            if(mat[n][i]=='S')
                pozs=i;
            if(mat[n][i]=='X' && pozvl!=-1)
                pozvd=i;
            if(mat[n][i]=='X' && pozvl==-1)
                pozvl=i;
        }
        cout<<"Pozicija vatre levo: "<<pozvl<<" desno: "<<pozvd<<" s: "<<pozs<<endl;
        if(pozvl==-1)
        {
            rez=1;
            for(int i=pozs+1; i<m; i++)
            {
                if(mat[n][i]!='*')
                    rez++;
                else
                    break;
            }
            for(int i=pozs-1; i>=0; i--)
            {
                if(mat[n][i]!='*')
                    rez++;
                else
                    break;
            }
        }
        else
        {
            if(pozs<pozvl)
            {

                for(int i=pozs-1; i>=0; i--)
                {
                    if(mat[n][i]!='*')
                        rez++;
                    else
                        break;
                }
                for(int i=pozs+1; i++; i<pozvl)
                {
                    if(mat[n][i]!='*')
                        rez++;
                    else
                        break;
                    pozvl++;
                }
            }
            else
            {
                if(pozvd==-1)
                {
                    for(int i=pozs+1; i<m; i++)
                    {
                        if(mat[n][i]!='*')
                            rez++;
                        else
                            break;
                    }
                    for(int i=pozs-1; i>pozvl;i--)
                    {
                        if(mat[n][i]!='*')
                        {
                            rez++;
                        }
                        else
                        {
                            break;
                        }
                        pozvl++;
                    }
                }
                else
                {
                    if(pozvd<pozs)
                    {
                        for(int i=pozs+1; i<m; i++)
                        {
                            if(mat[n][i]!='*')
                                rez++;
                            else
                                break;
                        }
                        for(int i=pozs-1; i>pozvd;i--)
                        {
                            if(mat[n][i]!='*')
                                rez++;
                            else
                                break;
                            pozvd++;
                        }
                    }
                    else
                    {
                        for(int i=pozs-1;i>pozvl; i--)
                        {
                            if(mat[n][i]!='*')
                                rez++;
                            else
                                break;
                            if(mat[n][pozvl+1]!='*')
                                pozvl++;
                        }
                        for(int i=pozs+1;i<pozvd; i++)
                        {
                            if(mat[n][i]!='*')
                                rez++;
                            else
                                break;
                            if(mat[n][pozvd-1]!='*')
                                pozvd--;
                        }
                    }
                }
            }
        }
    }
    printf("%d",rez);
    return 0;
}