#include<iostream>
#include<fstream>
#include<iomanip>
using namespace std;
int R[101][101], J[101][101];
int lin[]={2,-1,-1,0,+1,+1,+1,0,-1};
int col[]={2,0,+1,+1,+1,0,-1,-1,-1};
int qlin[101*101],qcol[101*101];
void Lee(int a[101][101], int n, int m, int l, int c)
{
int i,j,p,u;
p=u=0;
u++;
qlin[u]=l;
qcol[u]=c;
while (p!=u)
{
p++;
if (p==101*101)
p=1;
l=qlin[p];
c=qcol[p];
for (i=1;i<=8;i++)
{
int l1=l+lin[i], c1=c+col[i];
if (l1>=1 && c1>=1 && l1<=n && c1<=m)
if (a[l1][c1]==0 || a[l1][c1]>a[l][c]+1)
{
a[l1][c1]=a[l][c]+1;
u++;
if (u==101*101)
u=1;
qlin[u]=l1;
qcol[u]=c1;
}
}
}
}
int main(void)
{
int n,m,i,j,lr,cr,lj,cj;
fstream f,g;
f.open("rj.in",ios::in);
g.open("rj.out",ios::out);
f>>n>>m;
f.get();
for (i=1;i<=n;i++)
{
char c;
for (j=1;j<=m;j++)
{
f>>noskipws>>c;
//if (c==13 || c==10)
//continue;
switch(c)
{
case ' ': R[i][j]=J[i][j]=0;break;
case 'R': R[i][j]=1;J[i][j]=-1;lr=i;cr=j;break;
case 'J': J[i][j]=1; R[i][j]=-1;lj=i;cj=j;break;
case 'X': R[i][j]=J[i][j]=-1;break;
}
}
f.get();
}
Lee(R,n,m,lr,cr);
for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
cout<<setw(4)<<R[i][j]<<" ";
cout<<endl;
}
Lee(J,n,m,lj,cj);
cout<<endl<<endl;
for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
cout<<setw(4)<<J[i][j]<<" ";
cout<<endl;
}
//return 0;
int min=15000,lf,cf;
for (i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
if (R[i][j]==J[i][j] && R[i][j]>0 && J[i][j]>0 && min> R[i][j])
{
min=R[i][j];
lf=i;
cf=j;
}
}
g<<min<<" "<<lf<<" "<<cf;
}