#include <iostream>
#include <string>
#include <vector>

using namespace std;

void sirenjeVatre(vector<string> &matrica, int x, int y, int n, int m)
{
    if (x == 0)
    {
        if (y == 0)
        {
            if (matrica[x][y + 1] != '*' && matrica[x][y + 1] != 'S')
            {
                matrica[x][y + 1] = 'X';
            }
            if (matrica[x + 1][y] != '*' && matrica[x + 1][y] != 'S')
            {
                matrica[x + 1][y] = 'X';
            }
        }
        else if (y == m - 1)
        {
            if (matrica[x][y - 1] != '*' && matrica[x][y - 1] != 'S')
            {
                matrica[x][y - 1] = 'X';
            }
            if (matrica[x + 1][y] != '*' && matrica[x + 1][y] != 'S')
            {
                matrica[x + 1][y] = 'X';
            }
        }
        else
        {
            if (matrica[x][y - 1] != '*' && matrica[x][y - 1] != 'S')
            {
                matrica[x][y - 1] = 'X';
            }
            if (matrica[x][y + 1] != '*' && matrica[x][y + 1] != 'S')
            {
                matrica[x][y + 1] = 'X';
            }
            if (matrica[x + 1][y] != '*' && matrica[x + 1][y] != 'S')
            {
                matrica[x + 1][y] = 'X';
            }
        }
    }
    else if (x == n - 1)
    {
        if (y == 0)
        {
            if (matrica[x][y + 1] != '*' && matrica[x][y + 1] != 'S')
            {
                matrica[x][y + 1] = 'X';
            }
            if (matrica[x - 1][y] != '*' && matrica[x - 1][y] != 'S')
            {
                matrica[x - 1][y] = 'X';
            }
        }
        else if (y == m - 1)
        {
            if (matrica[x][y - 1] != '*' && matrica[x][y - 1] != 'S')
            {
                matrica[x][y - 1] = 'X';
            }
            if (matrica[x - 1][y] != '*' && matrica[x - 1][y] != 'S')
            {
                matrica[x - 1][y] = 'X';
            }
        }
        else
        {
            if (matrica[x][y - 1] != '*' && matrica[x][y - 1] != 'S')
            {
                matrica[x][y - 1] = 'X';
            }
            if (matrica[x][y + 1] != '*' && matrica[x][y + 1] != 'S')
            {
                matrica[x][y + 1] = 'X';
            }
            if (matrica[x - 1][y] != '*' && matrica[x - 1][y] != 'S')
            {
                matrica[x - 1][y] = 'X';
            }
        }
    }
    else
    {
        if (matrica[x][y - 1] != '*' && matrica[x][y - 1] != 'S')
        {
            matrica[x][y - 1] = 'X';
        }
        if (matrica[x][y + 1] != '*' && matrica[x][y + 1] != 'S')
        {
            matrica[x][y + 1] = 'X';
        }
        if (matrica[x - 1][y] != '*' && matrica[x + 1][y] != 'S')
        {
            matrica[x - 1][y] = 'X';
        }
        if (matrica[x + 1][y] != '*' && matrica[x + 1][y] != 'S')
        {
            matrica[x + 1][y] = 'X';
        }
    }
}
bool sirenjeSteve(vector<string> &matrica, int x, int y, int n, int m)
{
    bool out = false;
    if (x == 0)
    {
        if (y == 0)
        {
            if (matrica[x][y + 1] != '*' && matrica[x][y + 1] != 'X')
            {
                matrica[x][y + 1] = 'S';
                out = true;
            }
            if (matrica[x + 1][y] != '*' && matrica[x + 1][y] != 'X')
            {
                matrica[x + 1][y] = 'S';
                out = true;
            }
        }
        else if (y == m - 1)
        {
            if (matrica[x][y - 1] != '*' && matrica[x][y - 1] != 'X')
            {
                matrica[x][y - 1] = 'S';
                out = true;
            }
            if (matrica[x + 1][y] != '*' && matrica[x + 1][y] != 'X')
            {
                matrica[x + 1][y] = 'S';
                out = true;
            }
        }
        else
        {
            if (matrica[x][y - 1] != '*' && matrica[x][y - 1] != 'X')
            {
                matrica[x][y - 1] = 'S';
                out = true;
            }
            if (matrica[x][y + 1] != '*' && matrica[x][y + 1] != 'X')
            {
                matrica[x][y + 1] = 'S';
                out = true;
            }
            if (matrica[x + 1][y] != '*' && matrica[x + 1][y] != 'X')
            {
                matrica[x + 1][y] = 'S';
                out = true;
            }
        }
    }
    else if (x == n - 1)
    {
        if (y == 0)
        {
            if (matrica[x][y + 1] != '*' && matrica[x][y + 1] != 'X')
            {
                matrica[x][y + 1] = 'S';
                out = true;
            }
            if (matrica[x - 1][y] != '*' && matrica[x - 1][y] != 'X')
            {
                matrica[x - 1][y] = 'S';
                out = true;
            }
        }
        else if (y == m - 1)
        {
            if (matrica[x][y - 1] != '*' && matrica[x][y - 1] != 'X')
            {
                matrica[x][y - 1] = 'S';
                out = true;
            }
            if (matrica[x - 1][y] != '*' && matrica[x - 1][y] != 'X')
            {
                matrica[x - 1][y] = 'S';
                out = true;
            }
        }
        else
        {
            if (matrica[x][y - 1] != '*' && matrica[x][y - 1] != 'X')
            {
                matrica[x][y - 1] = 'S';
                out = true;
            }
            if (matrica[x][y + 1] != '*' && matrica[x][y + 1] != 'X')
            {
                matrica[x][y + 1] = 'S';
                out = true;
            }
            if (matrica[x - 1][y] != '*' && matrica[x - 1][y] != 'X')
            {
                matrica[x - 1][y] = 'S';
                out = true;
            }
        }
    }
    else
    {
        if (matrica[x][y - 1] != '*' && matrica[x][y - 1] != 'X')
        {
            matrica[x][y - 1] = 'S';
            out = true;
        }
        if (matrica[x][y + 1] != '*' && matrica[x][y + 1] != 'X')
        {
            matrica[x][y + 1] = 'S';
            out = true;
        }
        if (matrica[x - 1][y] != '*' && matrica[x + 1][y] != 'X')
        {
            matrica[x - 1][y] = 'S';
            out = true;
        }
        if (matrica[x + 1][y] != '*' && matrica[x + 1][y] != 'X')
        {
            matrica[x + 1][y] = 'S';
            out = true;
        }
    }
}

int main()
{
    vector<string> matrica;
    int n, m;
    cin >> n >> m;
    for (int i = 0; i < n; i++)
    {
        string linija;
        cin >> linija;
        matrica.push_back(linija);
    }
    bool stevaProsiren = true;
    while (stevaProsiren == true)
    {
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                if (matrica[i][j] == 'X')
                {
                    sirenjeVatre(matrica, i, j, n, m);
                }
            }
        }
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                if (matrica[i][j] == 'S')
                {
                    stevaProsiren = sirenjeSteve(matrica, i, j, n, m);
                }
            }
        }
    }
    int steve = 0;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if (matrica[i][j] == 'S')
            {
                steve++;
            }
        }
    }
    cout << steve;
}