#include<iostream>
#include<vector>
#include<queue>
using namespace std;
int main()
{
    int n,m;
    cin>>n>>m;
    string Lebron[n];
    int a[n*m];
    int steva;
    bool posecen[n*m];
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
            posecen[i*m+j]=false;
    }
    queue<int> vatra;
    queue<int>st;
    for(int i=0;i<n;i++)
    {
        cin>>Lebron[i];
        for(int j=0;j<m;j++)
        {
            if(Lebron[i][j]=='.')
                a[i*m+j]=0;
            else if(Lebron[i][j]=='*')
                a[i*m+j]=1;
            else if(Lebron[i][j]=='X')
                {
                    a[i*m+j]=-1;
                    vatra.push(i*m+j);
                }
            else
                {
                    a[i*m+j]=2;
                    steva=i*m+j;
                    st.push(i*m+j);
                }
        }
    }
    vector<vector<int>> g(n*m);
    for(int i=0;i<n;i++)
    {

        for(int j=0;j<m;j++)
        {
            if(a[i*m+j]!=1)
            {

                if(i>0){
                    if(a[(i-1)*m+j]!=1)
                    g[i*m+j].push_back((i-1)*m+j);
                }
                if(j>0){
                    if(a[i*m+j-1]!=1)
                    g[i*m+j].push_back(i*m+j-1);
                 }
                if(i<n-1){
                    if(a[(i+1)*m+j]!=1)
                    g[i*m+j].push_back((i+1)*m+j);
                }
                if(j<m-1){
                    if(a[i*m+j+1]!=1)
                    g[i*m+j].push_back(i*m+j+1);
                }
            }
        }
    }
    int br=0;
    while(!st.empty())
    {
        st.push(-1);
        vatra.push(-1);
        int b=vatra.front();
        vatra.pop();
        while(b!=-1)
        {
            for(int i=0;i<g[b].size();i++)
               {
                    int e=a[g[b][i]];
                    if(e!=-1 && e!=1)
                    {
                        a[g[b][i]]=-1;
                        vatra.push(g[b][i]);
                    }
               }
            b=vatra.front();
            vatra.pop();
        }

        int d;
        d=st.front();
        st.pop();
        while(d!=-1)
        {
            br++;
            for(int i=0;i<g[d].size();i++)
               {

                    int e=a[g[d][i]];
                    if(e==0)
                    {
                        a[g[d][i]]=2;
                        st.push(g[d][i]);
                    }
               }
            d=st.front();
            st.pop();
        }
    }
    cout<<br<<endl;
}