#include <iostream>
#include <bits/stdc++.h>

using namespace std;
void sirenje_vatre(int n, int m, char** a)
{
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; i++)
        {
            if(a[i][j] == 'X' && a[i][j] != '*' && a[i][j] != 'S')
            {
                a[i][j + 1] = 'X';
                a[i][j - 1] = 'X';
                a[i + 1][j] = 'X';
                a[i - 1][j] = 'X';
                break;
            }
        }
        break;
    }
}
int brojanje_vatre(int n, int m, char** a)
{
    int brojac = 0;
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
        {
            if(a[i][j] == 'X')
                brojac++;
        }
    }
    return brojac;
}
bool slobodno(int n, int m, int** a)
{
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
        {
            if(i > 0)
            {
                if(a[i + 1][j] != '.' && a[i - 1][j] != '.')
                {
                    return false;
                    break;
                }
            }
            if(j > 0)
            {
                if(a[i][j + 1] != '.' && a[i][j - 1] != '.')
                {
                    return false;
                    break;
                }
            }
        }
    }
}
void stevin_potez(int n, int m, char** a)
{
    bool pom = false;
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            if(j > 0)
            {
                if(a[i][j + 1] == '.')
                {
                    a[i][j+1] = 'S';
                    pom = true;
                    break;
            }
            else
                if(a[i][j-1] == '.')
                {
                    a[i][j-1] = 'S';
                    pom = true;
                    break;
                }
            }
            if(i > 0){
                if(a[i + 1][j] == '.')
                {
                    a[i + 1][j] = 'S';
                    pom = true;
                    break;
                }
                else
                    if(a[i - 1][j] == '.')
                    {
                            a[i - 1][j] = 'S';
                            pom = true;
                            break;
                    }
            }
        }
        if(pom)
            break;
    }
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n, m;
    cin >> n >> m;
    char a[n][m];
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
        {
            cin >> a[i][j];
        }
    }
    int s = 0;
    int sirenjeX = 0;
    bool slobdno_polje = true;
    while(slobdno_polje)
    {
        if(slobodno(n,m,a))
            slobdno_polje = true;
        else slobdno_polje = false;
        sirenjeX = brojanje_vatre(n,m,a);
        if(slobdno_polje)
        {
            for(int i = 0; i < sirenjeX; i++)
            {
                sirenje_vatre(n,m,a);
            }
            stevin_potez(n,m,a);
            s++;
        }
    }
    cout << s;
    return 0;
}