#include <stdio.h>
#define MAXN 100
#define NRDIR 8
int dirlin[NRDIR]=
{
-1, -1, 0, 1, 1, 1, 0, -1
};
int dircol[NRDIR]=
{
0, 1, 1, 1, 0, -1, -1, -1
};
int qL[MAXN*MAXN], qC[MAXN*MAXN], R[MAXN+2][MAXN+2], J[MAXN+2][MAXN+2];
inline void bfs(int lin, int col, int m[MAXN+2][MAXN+2]){
int st, dr, l, c, i;
st=0;
dr=1;
qL[0]=lin;
qC[0]=col;
m[lin][col]=1;
while(st<dr){
lin=qL[st];
col=qC[st];
st++;
for(i=0; i<NRDIR; i++){
l=lin+dirlin[i];
c=col+dircol[i];
if(m[l][c]==0){
m[l][c]=m[lin][col]+1;
qL[dr]=l;
qC[dr]=c;
dr++;
}
}
}
}
int main(){
int nrlin, nrcol, min, lin, col, i, j, a, b, c, d;
char ch;
FILE *fin, *fout;
fin=fopen("rj.in", "r");
fout=fopen("rj.out", "w");
fscanf(fin, "%d%d", &nrlin, &nrcol);
for(i=1; i<=nrlin; i++){
for(j=1; j<=nrcol; j++){
ch=fgetc(fin);
if(ch=='X'){
R[i][j]=J[i][j]=-1;
}else if(ch=='R'){
a=i;
b=j;
}else if(ch=='J'){
c=i;
d=j;
}
}
fgetc(fin);
}
for(i=0; i<=nrlin+1; i++){
R[i][0]=R[i][nrcol+1]=J[i][0]=J[i][nrcol+1]=-1;
}
for(i=0; i<=nrcol+1; i++){
R[0][i]=R[nrlin+1][i]=J[0][i]=J[nrlin+1][i]=-1;
}
bfs(a, b, R);
bfs(c, d, J);
min=MAXN*MAXN;
for(i=1; i<=nrlin; i++){
for(j=1; j<=nrcol; j++){
if((R[i][j]>0)&&(J[i][j]>0)&&(R[i][j]==J[i][j])&&(min>R[i][j])){
min=R[i][j];
lin=i;
col=j;
}
}
}
fprintf(fout, "%d %d %d\n", min, lin, col);
fclose(fin);
fclose(fout);
return 0;
}