using System;
using System.Runtime.InteropServices;
using System.Text.RegularExpressions;

class Program
{
    static void Main(string[] args)
    {

        static int BrojPolja(string[,] matrica, int n, int m)
        {
            int resenje = 0;
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < m; j++)
                {
                    if (matrica[i, j] == "S") resenje++;
                }
            }
            return resenje;
        }

        string[] d = Console.ReadLine().Split(null);
        int n = int.Parse(d[0]);
        int m = int.Parse(d[1]);
        string[,] matrica = new string[n, m];
        string s;
        for (int i = 0; i < n; i++)
        {
            s = Console.ReadLine();
            for (int j = 0; j < m; j++)
            {

                matrica[i, j] = s.Substring(j, 1);
            }
        }
        //ispis
        //for (int i = 0; i < n; i++)
        //{
        //    for (int j = 0; j < m; j++)
        //    {
        //        Console.Write(matrica[i, j]);
        //    }
        //    Console.WriteLine();
        //}
        int resenje = 0;
        //for (int i = 0; i < n; i++)
        //{
        //    for (int j = 0; j < m; j++)
        //    {
        //        if (matrica[i, j] == "X")
        //        {
        //            if (i > 0 && matrica[i - 1, j] == "S") resenje = 0;
        //            if (j > 0 && matrica[i, j - 1] == "S") resenje = 0;
        //            if (i < n - 1 && matrica[i + 1, j] == "S") resenje = 0;
        //            if (j < m - 1 && matrica[i, j + 1] == "S") resenje = 0;
        //        }
        //    }
        //}
        //if (resenje != 0)
        //{
            int brojesova=0;
            int brojesovapravematrice = 0;
            while (true)
            {
                for (int i = 0; i < n; i++)
                {
                    for (int j = 0; j < m; j++)
                    {
                        if (matrica[i, j] == "X")
                        {
                            if (i > 0 && matrica[i - 1, j] == ".") matrica[i - 1, j] = "x";
                            if (j > 0 && matrica[i, j - 1] == ".") matrica[i, j - 1] = "x";
                            if (i < n - 1 && matrica[i + 1, j] == ".") matrica[i + 1, j] = "x";
                            if (j < m - 1 && matrica[i, j + 1] == ".") matrica[i, j + 1] = "x";
                        }
                    }
                }  
                
                for (int i = 0; i < n; i++)
                {
                    for (int j = 0; j < m; j++)
                    {
                        if (matrica[i, j] == "S")
                        {
                            if (i > 0 && matrica[i - 1, j] == ".") matrica[i - 1, j] = "s";
                            if (j > 0 && matrica[i, j - 1] == ".") matrica[i, j - 1] = "s";
                            if (i < n - 1 && matrica[i + 1, j] == ".") matrica[i + 1, j] = "s";
                            if (j < m - 1 && matrica[i, j + 1] == ".") matrica[i, j + 1] = "s";
                        }
                    }
                }

                for (int i = 0; i < n; i++)
                {
                    for (int j = 0; j < m; j++)
                    {
                        if (matrica[i, j] == "x")
                        {
                            matrica[i, j] = "X";
                        }
                    }
                }

                for (int i = 0; i < n; i++)
                {
                    for (int j = 0; j < m; j++)
                    {
                        if (matrica[i, j] == "s")
                        {
                            matrica[i, j] = "S";
                        }
                    }
                }

                //Console.WriteLine("----");

                //for (int i = 0; i < n; i++)
                //{
                //    for (int j = 0; j < m; j++)
                //    {
                //        Console.Write(matrica[i, j]);
                //    }
                //    Console.WriteLine();
                //}

                brojesovapravematrice = BrojPolja(matrica, n, m);
                if (brojesova == brojesovapravematrice) break;
                brojesova = brojesovapravematrice;
            }
            resenje = 0;
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < m; j++)
                {
                    if (matrica[i, j] == "S") resenje++;
                }
            }
        //}
        
        //for (int i = 0; i < n; i++)
        //{
        //    for (int j = 0; j < m; j++)
        //    {
        //        Console.Write(matrica[i, j]);
        //    }
        //    Console.WriteLine();
        //}
        Console.WriteLine(resenje);
    }
}

//using System;

//class Program
//{
//    static void Main(string[] args)
//    {
//        int n = int.Parse(Console.ReadLine());
//        string[] nizA = Console.ReadLine().Split();
//        string[] nizB = Console.ReadLine().Split();
//        int[] A= new int[n];
//        int[] B= new int[n];
//        for(int i = 0; i < n; i++)
//        {
//            A[i] = int.Parse(nizA[i]);
//            B[i] = int.Parse(nizB[i]);
//        }
//        // OVAKO:   int resenje = (char)B[0] ^ (char)A[0];
//        int max = 0;
//        int trbrojA;
//        int trbrojB;
//        int vrednostA;
//        int vrednostB;
//        for(int l = 0; l <= n-2; l++) 
//        {
//            for(int d =1 + l; d < n; d++)
//            {
//                vrednostA=trbrojA = A[l];
//                vrednostB=trbrojB = B[l];

//                for(int i = l+1; i<=d;i++)
//                {
//                    vrednostA = vrednostA ^ A[i];
//                    vrednostB = vrednostB & B[i];
//                }
//                if (vrednostA * vrednostB > max)
//                {
//                    max = vrednostA * vrednostB; 
//                }
//            }
//        }
//        Console.WriteLine(max);
//        //string binaryForm = Convert.ToString(n, b);
//        //Console.WriteLine(binaryForm);
//    }
//}