#include<iostream.h>
#include<stdio.h>
#include<conio.h>
int main()
{ clrscr();
f=fopen("rj.in","r");
g=fopen("rj.out","w");
int n,m,i,j,k,d[103][103],d1[103][103],rx,ry,jy,jx;
fscanf(f,"%d %d\n",&m,&n);
char a[103][103],c;
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
{
fscanf(f,"%c",&c);
if(c==' ') a[i][j]='0';
else
if(c=='X') a[i][j]='1';
else
if(c=='R') { a[i][j]='2';rx=i;ry=j;}
else
if(c=='J') {a[i][j]='3';jx=i;jy=j;}
d[i][j]=d1[i][j]=0;
}
fscanf(f,"%c",&c);
}
for(i=0;i<=m+1;i++)
a[i][0]=a[i][n+1]='1';
for(j=0;j<=n+1;j++)
a[0][j]=a[m+1][j]='1';
//lee
int dx[]={1,1,1,-1,-1,-1,0,0},dy[]={1,0,-1,1,-1,0,1,-1},x,cx,cy;
k=1; int t=1,t1=1,x1,y1,nr1,nr=1;
d[rx][ry]=d1[jx][jy]=k;
do
{
t=0; nr++;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
if(d[i][j]==k)
{
for(x=0;x<8;x++)
{
cx=i+dx[x];
cy=j+dy[x];
if(a[cx][cy]!='1'&&d[cx][cy]==0&&d1[cx][cy]==0)
{
t=1;
d[cx][cy]=k+1; a[cx][cy]='2';
}
}
}
}
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
if(d1[i][j]==k)
{
for(x=0;x<8;x++)
{
cx=i+dx[x];
cy=j+dy[x];
if(a[cx][cy]!='1'&&d1[cx][cy]==0&&d[cx][cy]==k+1&&t1)
{
nr1=nr;x1=cx;y1=cy;t1=0;
}
if(a[cx][cy]!='1'&&d1[cx][cy]==0&&d[cx][cy]==0)
{
t=1;
d1[cx][cy]=k+1; a[cx][cy]='3';
}
}
}
}
if(t) k++;
}
while(t&&t1);
fprintf(g,"%d %d %d\n",nr1,x1,y1);
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
fprintf(g,"%c",a[i][j]);
fprintf(g,"\n");
}
fprintf(g,"\n");
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
fprintf(g,"%d",d[i][j]);
fprintf(g,"\n");
}
fprintf(g,"\n");
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
fprintf(g,"%d",d1[i][j]);
fprintf(g,"\n");
}return 0;
}