#include <cstdio>
using namespace std;
struct Pozitie
{
int x,y;
};
Pozitie q[175*175+5];
int v1[105][105],v2[105][105];
int d1[8]={-1,0,1,0,-1,-1,1,1};
int d2[8]={0,1,0,-1,-1,1,1,-1};
void lee(int x1,int y1,int v[105][105],int n,int m)
{
q[1].x=x1;
q[1].y=y1;
int p=1,u=2,i;
while(p<u)
{
for(i=0;i<8;++i){
if(v[q[p].x+d1[i]][q[p].y+d2[i]]==0)
if(q[p].y+d2[i]>=0&&q[p].y+d2[i]<m&&q[p].x+d1[i]>=0&&q[p].x+d1[i]<n){
v[q[p].x+d1[i]][q[p].y+d2[i]]=v[q[p].x][q[p].y]+1;
q[u].x=q[p].x+d1[i];q[u].y=q[p].y+d2[i];
++u;
}
}
++p;
}
}
int main()
{
int n,m,x,y,x1,x2,y1,y2,j=0,i=0;
char c;
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
scanf("%d%d\n",&n,&m);
while(c!='\n'&&c!=EOF){
while(c!='\n'&&c!=EOF)
{
scanf("%c",&c);
if(c==' ')
v1[i][j]=v2[i][j]=0;
if(c=='X')
v1[i][j]=v2[i][j]=-1;
if(c=='R')
{
x1=i;y1=j;
}
if(c=='J')
{
x2=i;y2=j;
}
printf("%c",c);
++j;
}
//scanf("%c",&c);
//printf("\n");
++i;
}
for(i=0;i<n;++i){
for(j=0;j<m;++j)
printf("%d ",v1[i][j]);
printf("\n");
}
lee(x1,y1,v1,n,m);
lee(x2,y2,v2,n,m);
int min=1000000,pi=-1,pj=-1;
for(i=0;i<n;++i)
for(j=0;j<m;++j)
if(v1[i][j]==v2[i][j]&&v1[i][j]<min&&v1[i][j]>-1)
{
min=v1[i][j];pi=i;pj=j;
}
printf("%d %d %d",min,pi,pj);
return 0;
}