using System;
using System.Runtime.CompilerServices;

public class HelloWorld
{
    public static void Main(string[] args)
    {
        string a = Console.ReadLine();
        string[] b = a.Split(' ');
        int N = int.Parse(b[0]);
        int M = int.Parse(b[1]);
        char[,] map = new char[N, M];
        int resenje = 0;
        int promena = 1;
        for (int i = 0; i < N; i++)
        {
            string a1 = Console.ReadLine();
            for(int j = 0; j < M; j++)
            {
                map[i, j] = a1[j];
            }
        }
        while(promena != 0)
        {
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < M; j++)
                {
                    if (map[i, j] == 'X')
                    {
                        if (i != 0)
                        {
                            if (map[i - 1, j] == '.')
                            {
                                map[i - 1, j] = 'x';
                            }
                        }
                        if (i != N - 1)
                        {
                            if (map[i + 1, j] == '.')
                            {
                                map[i + 1, j] = 'x';
                            }
                        }
                        if (j != 0)
                        {
                            if (map[i, j - 1] == '.')
                            {
                                map[i, j - 1] = 'x';
                            }
                        }
                        if (j != M - 1)
                        {
                            if (map[i, j + 1] == '.')
                            {
                                map[i, j + 1] = 'x';
                            }
                        }
                    }
                }
            }
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < M; j++)
                {
                    if (map[i, j] == 'x')
                    {
                        map[i, j] = 'X';
                    }
                }
            }
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < M; j++)
                {
                    if (map[i, j] == 'S')
                    {
                        if (i != 0)
                        {
                            if (map[i - 1, j] == '.')
                            {
                                map[i - 1, j] = 's';
                            }
                        }
                        if (i != N - 1)
                        {
                            if (map[i + 1, j] == '.')
                            {
                                map[i + 1, j] = 's';
                            }
                        }
                        if (j != 0)
                        {
                            if (map[i, j - 1] == '.')
                            {
                                map[i, j - 1] = 's';
                            }
                        }
                        if (j != M - 1)
                        {
                            if (map[i, j + 1] == '.')
                            {
                                map[i, j + 1] = 's';
                            }
                        }
                    }
                }
            }
            promena = 0;
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < M; j++)
                {
                    if (map[i, j] == 's')
                    {
                        map[i, j] = 'S';
                        resenje++;
                        promena++;
                    }
                }
            }
        }
        Console.WriteLine(resenje+1);
    }
}