#include<cstdio>
#include<fstream>
using namespace std;
FILE *f=fopen("rj.in","r");
ofstream g("rj.out");
int a[102][102],n,m,xi,yi,xf,yf,xr,yr,xj,yj,j[102][102];
void leej()
{
int c[10000][2],dx[]={-1,0,1,0,-1,-1,1,1},dy[]={0,1,0,-1,-1,1,1,-1},p,u,x,xx,y,yy,i;
p=u=1;
c[1][0]=xi;
c[1][1]=yi;
j[xi][yi]=1;
while(p<=u)
{
x=c[p][0];
y=c[p][1];
for(i=0;i<=7;i++)
{
xx=x+dx[i];
yy=y+dy[i];
if(j[xx][yy]==0)
{
u++;
c[u][0]=xx;
c[u][1]=yy;
j[xx][yy]=j[x][y]+1;
/*if(xx==xf&&yy==yf)
{
return a[x][y];
}*/
}
}
p++;
}
//return -1;
}
void lee()
{
int c[10000][2],dx[]={-1,0,1,0,-1,-1,1,1},dy[]={0,1,0,-1,-1,1,1,-1},p,u,x,xx,y,yy,i;
p=u=1;
c[1][0]=xi;
c[1][1]=yi;
a[xi][yi]=1;
while(p<=u)
{
x=c[p][0];
y=c[p][1];
for(i=0;i<=7;i++)
{
xx=x+dx[i];
yy=y+dy[i];
if(a[xx][yy]==0)
{
u++;
c[u][0]=xx;
c[u][1]=yy;
a[xx][yy]=a[x][y]+1;
/*if(xx==xf&&yy==yf)
{
return a[x][y];
}*/
}
}
p++;
}
//return -1;
}
void citire()
{
int i,x,y,minim=1000000000,xmin,ymin;
char c;
fscanf(f,"%d%d",&n,&m);
fscanf(f,"%c",&c);
for(x=1;x<=n;x++)
{
for(y=1;y<=m;y++)
{
fscanf(f,"%c",&c);
if(c=='X')
a[x][y]=-1;
else
if(c=='R')
xr=x,yr=y;
else
if(c=='J')
xj=x,yj=y;
}
fscanf(f,"%c",&c);
}
for(i=0;i<=m+1;i++)
a[0][i]=a[n+1][i]=-1;
for(i=0;i<=n+1;i++)
a[i][0]=a[i][m+1]=-1;
for(x=0;x<=n+1;x++)
for(y=0;y<=m+1;y++)
j[x][y]=a[x][y];
xi=xr;
yi=yr;
lee();
xi=xj;
yi=yj;
leej();
for(x=1;x<=n;x++)
for(y=1;y<=m;y++)
if(a[x][y]==j[x][y]&&a[x][y]<minim&&a[x][y]!=0&&a[x][y]!=-1)
{
minim=a[x][y];
xmin=x;
ymin=y;
}
g<<minim<<" "<<xmin<<" "<<ymin;
}
int main()
{
citire();
return 0;
}