#include <stdio.h>
#include <stdlib.h>
#define NIL -1
#define MAXN 105
int n, m, i, j, lin, col, prim, ultim, dist, g, h;
int L[MAXN][MAXN], queue[MAXN*MAXN][2], r[MAXN][MAXN], f[MAXN][MAXN], r2[MAXN][MAXN];
int dir[8][2]={{1, 0}, {-1, 0}, {0, 1}, {0, -1}, {-1, 1}, {1, 1}, {1, -1}, {-1, -1}};
void lee(int a, int b, int f[MAXN][MAXN]){
for(i=0; i<=n+1; i++)
for(j=0; j<=m+1; j++)
f[i][j]=NIL;
queue[0][0]=a;
queue[0][1]=b;
f[a][b]=1;
prim=0;
ultim=1;
while(prim<=ultim){
lin=queue[prim][0];
col=queue[prim][1];
dist=f[lin][col];
for(i=0;i<8;i++){
g=lin+dir[i][0];
h=col+dir[i][1];
if(L[g][h]==0 && f[g][h]==-1){
f[g][h]=dist+1;
queue[ultim][0]=g;
queue[ultim][1]=h;
ultim++;
}
}
prim++;
}
}
int main(){
FILE*fin=fopen("rj.in", "r");
FILE*fout=fopen("rj.out", "w");
int x1, y1, x2, y2, xmin, ymin, tmin;
char c1;
fscanf(fin, "%d%d", &n, &m);
fgetc(fin);
for(i=1; i<=n; i++){
for(j=1; j<=m; j++){
c1=fgetc(fin);
if(c1=='X')
L[i][j]=NIL;
if(c1=='R'){
x1=i;
y1=j;
}
if(c1=='J'){
x2=i;
y2=j;
}
if(c1==' ')
L[i][j]=0;
}
fgetc(fin);
}
for(i=0; i<=n+1; i++)
L[i][0]=L[i][m+1]=NIL;
for(j=0; j<=m+1; j++)
L[0][j]=L[n+1][j]=NIL;
lee(x1, y1, r);
lee(x2, y2, r2);
for (i=1; i<=n; i++)
for (j=1; j<=m; j++)
if (r[i][j]==r2[i][j] && r[i][j]<tmin && r2[i][j]!=-1){
tmin=r[i][j];
xmin=i;
ymin=j;
}
fprintf(fout, "%d %d %d", tmin, xmin, ymin);
return 0;
}