#include <stdio.h>
struct nod{int x,y;nod *urm;};
nod *que,*ultim;
int A[101][101],B[101][101];
void add(int x,int y)
{
nod *urm;
urm = new nod;
urm->x = x;
urm->y = y;
urm->urm = NULL;
if (que==NULL) que=urm,ultim=que;
else ultim->urm = urm,ultim = urm;
}
int main()
{
FILE *in = fopen("rj.in","r");
FILE *out = fopen("rj.out","w");
int x1,y1,x2,y2,i,j,n,m;
fscanf(in,"%d %d\n",&n,&m);
char c;
for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
{
fscanf(in,"%c",&c);
if (c=='X' || c=='x') A[i][j]=-1,B[i][j]=-1;
else
if (c=='R') A[i][j]=1,x1=i,y1=j,B[i][j]=100000;
else
if (c=='J') A[i][j]=100000,x2=i,y2=j,B[i][j]=1;
else
if (c==' ') A[i][j]=10000,B[i][j]=100000;
}
fscanf(in,"%c",&c);
}
nod *scos;
int x,y;
add(x1,y1);
while (que)
{
x=que->x;
y=que->y;
scos = que;
que = que->urm;
delete scos;
if (x>1) if (A[x-1][y]>A[x][y]+1) A[x-1][y]=A[x][y]+1,add(x-1,y);
if (x<n) if (A[x+1][y]>A[x][y]+1) A[x+1][y]=A[x][y]+1,add(x+1,y);
if (y>1) if (A[x][y-1]>A[x][y]+1) A[x][y-1]=A[x][y]+1,add(x,y-1);
if (y<m) if (A[x][y+1]>A[x][y]+1) A[x][y+1]=A[x][y]+1,add(x,y+1);
if (x>1 && y>1) if (A[x-1][y-1]>A[x][y]+1) A[x-1][y-1]=A[x][y]+1,add(x-1,y-1);
if (x>1 && y<m) if (A[x-1][y+1]>A[x][y]+1) A[x-1][y+1]=A[x][y]+1,add(x-1,y+1);
if (x<n && y>1) if (A[x+1][y-1]>A[x][y]+1) A[x+1][y-1]=A[x][y]+1,add(x+1,y-1);
if (x<n && y<m) if (A[x+1][y+1]>A[x][y]+1) A[x+1][y+1]=A[x][y]+1,add(x+1,y+1);
}
int st=100000,sx,sy;
add(x2,y2);
while (que)
{
x=que->x;
y=que->y;
scos = que;
que = que->urm;
delete scos;
if (x>1) if (B[x-1][y]>B[x][y]+1) B[x-1][y]=B[x][y]+1,add(x-1,y);
if (x<n) if (B[x+1][y]>B[x][y]+1) B[x+1][y]=B[x][y]+1,add(x+1,y);
if (y>1) if (B[x][y-1]>B[x][y]+1) B[x][y-1]=B[x][y]+1,add(x,y-1);
if (y<m) if (B[x][y+1]>B[x][y]+1) B[x][y+1]=B[x][y]+1,add(x,y+1);
if (x>1 && y>1) if (B[x-1][y-1]>B[x][y]+1) B[x-1][y-1]=B[x][y]+1,add(x-1,y-1);
if (x>1 && y<m) if (B[x-1][y+1]>B[x][y]+1) B[x-1][y+1]=B[x][y]+1,add(x-1,y+1);
if (x<n && y>1) if (B[x+1][y-1]>B[x][y]+1) B[x+1][y-1]=B[x][y]+1,add(x+1,y-1);
if (x<n && y<m) if (B[x+1][y+1]>B[x][y]+1) B[x+1][y+1]=B[x][y]+1,add(x+1,y+1);
}
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
if (A[i][j]==B[i][j] && A[i][j]!=-1) if (A[i][j]<st) st=A[i][j],sx=i,sy=j;
//fprintf(out,"%2d ",B[i][j]);
//fprintf(out,"\n");}
fprintf(out,"%d %d %d",st,sx,sy);
}