using System;
internal class Program
    {
        static void Pretvori(char[, ] l, char[, ] ll, int y, int x)
        {
            for (int i = 0; i < y; i++)
            {
                for (int j = 0; j < x; j++)
                {
                    l[i, j] = ll[i, j];
                }
            }
        }
        static void Main(string[] args)
        {
            string[] l1 = Console.ReadLine().Split(" ");
            int y = int.Parse(l1[0]);
            int x = int.Parse(l1[1]);
            char[,] l = new char[y, x];
            char[,] ll = new char[y, x];

            for (int i = 0; i < y; i++)
            {
                string s = Console.ReadLine();
                for (int j = 0; j < x; j++)
                {
                    l[i, j] = s[j];
                }
            }
            int brX = 0;
            int brS = 0;
            Pretvori(ll, l, y, x);
            while (true)
            {
                brX = 0;
                brS = 0;
                for (int i = 0; i < y; i++)
                {
                    for (int j = 0; j < x; j++)
                    {
                        if (l[i, j] == 'X')
                        {
                            if (i != 0)
                            {
                                if (ll[i - 1, j] == '.')
                                {
                                    ll[i - 1, j] = 'X';
                                    brX++;
                                }
                            }
                            if (i != y - 1)
                            {
                                if (ll[i + 1, j] == '.')
                                {
                                    ll[i + 1, j] = 'X';
                                    brX++;
                                }
                            }
                            if (j != 0)
                            {
                                if (ll[i, j - 1] == '.')
                                {
                                    ll[i, j - 1] = 'X';
                                    brX++;
                                }
                            }
                            if (j != x - 1)
                            {
                                if (ll[i, j + 1] == '.')
                                {
                                    ll[i, j + 1] = 'X';
                                    brX++;
                                }
                            }

                        }
                    }
                }
                Pretvori(l, ll, y, x);
                for (int i = 0; i < y; i++)
                {
                    for (int j = 0; j < x; j++)
                    {
                        if (l[i, j] == 'S')
                        {
                            if (i != 0)
                            {
                                if (ll[i - 1, j] == '.')
                                {
                                    ll[i - 1, j] = 'S';
                                    brS++;
                                }
                            }
                            if (i != y - 1)
                            {
                                if (ll[i + 1, j] == '.')
                                {
                                    ll[i + 1, j] = 'S';
                                    brS++;
                                }
                            }
                            if (j != 0)
                            {
                                if (ll[i, j - 1] == '.')
                                {
                                    ll[i, j - 1] = 'S';
                                    brS++;
                                }
                            }
                            if (j != x - 1)
                            {
                                if (ll[i, j + 1] == '.')
                                {
                                    ll[i, j + 1] = 'S';
                                    brS++;
                                }
                            }
                            
                        }
                    }
                    
                }
                Pretvori(l, ll, y, x);
                if (brX + brS == 0)
                {
                    break;
                }
            }
           
            
            int S = 0;
            for (int i = 0; i < y; i++)
            {
                for (int j = 0; j < x; j++)
                {
                    if (l[i, j] == 'S') 
                    { 
                        S++;
                    }
                }
            }
            Console.WriteLine(S);
        }
    }