#include<iostream>
#include<vector>
#include<queue>
using namespace std;
static void bfs1(int poc,vector<vector<int>>&g,int a[],bool posecen[],int &br)
{
    queue<int>q;
    q.push(poc);
    posecen[poc]=true;
    q.push(-1);
    while(!q.empty())
    {
        poc=q.front();
        q.pop();
        if(poc==-1)
        {
            cout<<"pizza"<<endl;;
            br++;
            if(q.empty())
                break;
            q.push(-1);
            poc=q.front();
            q.pop();
        }
        cout<<poc<<endl;
        if(a[poc]==-1)
            break;
        for(int i=0;i<g[poc].size();i++)
        {
            if(!posecen[g[poc][i]])
            {
                posecen[g[poc][i]]=true;
                q.push(g[poc][i]);
            }
        }

    }
}
static void bfs2(int poc,vector<vector<int>>&g,int a[],bool posecen[],int &br,int &k)
{
    queue<int>q;
    q.push(poc);
    posecen[poc]=true;
    q.push(-1);
    int stanje=0;
    int u=0;
    while(!q.empty())
    {
        poc=q.front();
        q.pop();
        cout<<poc<<endl;
        if(poc==-1)
        {
            u++;
            q.push(-1);
            poc=q.front();
            q.pop();
            k=k+stanje;
        }
        if(a[poc]==-1)
            break;
        if((br+1)%2-1<u)
        stanje++;
        for(int i=0;i<g[poc].size();i++)
        {
            if(!posecen[g[poc][i]])
            {
                posecen[g[poc][i]]=true;
                q.push(g[poc][i]);
            }
        }

    }
}
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;
    }
    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;
                }
            else
                {
                    a[i*m+j]=0;
                    steva=i*m+j;
                }
        }
    }
    cout<<endl;
    vector<vector<int>> g(n*m);
    vector<vector<int>> graf;

    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);
                }
                graf.push_back(g[i*m+j]);
            }

        }
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
            cout<<a[i*m+j];
        cout<<endl;
    }
    cout<<endl;
    for(int i=0;i<graf.size();i++)
    {
        for(int j=0;j<graf[i].size();j++)
            cout<<graf[i][j]<<" ";
        cout<<endl;
    }
    int br=0;
    bfs1(steva,g,a,posecen,br);
    cout<<endl;
    cout<<"pizza";
    cout<<br<<endl;
    int k=0;
    bfs2(steva,g,a,posecen,br,k);
    cout<<k<<endl;

}