#include<stdio.h>
#include<iostream.h>
#include<values.h>
int a[100][100], b[100][100], cx1[1000], cx2[1000], cy1[1000], cy2[1000];
int main()
{int m, n, i, j, rx, ry, jx, jy, p, u, x, y, min=MAXINT, z, t, xnou, ynou, dx[]={0, -1, -1, 0, 1, 1, 1, 0, -1}, dy[]={0, 0, 1, 1, 1, 0, -1, -1, -1};
char c;
FILE *f=fopen("rj.in","r");
FILE *g=fopen("rj.out","w");
fscanf (f,"%d %d", &m, &n);
fscanf (f,"%c",&c);
for (i=1;i<=m;i++) {for (j=1;j<=n;j++) {fscanf (f,"%c",&c);
if (c=='X') a[i][j]=b[i][j]=-1;
else if (c==' ') a[i][j]=b[i][j]=0;
else if (c=='R') {b[i][j]=1;
rx=i;
ry=j;
}
else if (c=='J') {a[i][j]=1;
jx=i;
jy=j;
}
}
fscanf (f,"%c",&c);
}
p=u=1;
a[jx][jy]=1;
cx1[u]=jx;
cy1[u]=jy;
while (p<=u) {x=cx1[p];
y=cy1[p];
for (i=1;i<=8;i++) {xnou=x+dx[i];
ynou=y+dy[i];
if (a[xnou][ynou]==0) {a[xnou][ynou]=a[x][y]+1;
cx1[++u]=xnou;
cy1[u]=ynou;
}
}
p++;
}
for (i=1;i<=m;i++) for (j=1;j<=n;j++) if (b[i][j]>1) b[i][j]=0;
p=u=1;
b[rx][ry]=1;
cx2[u]=rx;
cy2[u]=ry;
while (p<=u) {x=cx2[p];
y=cy2[p];
for (i=1;i<=8;i++) {xnou=x+dx[i];
ynou=y+dy[i];
if (b[xnou][ynou]==0) {b[xnou][ynou]=b[x][y]+1;
cx2[++u]=xnou;
cy2[u]=ynou;
}
}
p++;
}
for (i=1;i<=m;i++) for (j=1;j<=n;j++) if (a[i][j]!=-1&&a[i][j]==b[i][j]&&a[i][j]<min) {min=a[i][j];
z=i;
t=j;
}
fprintf (g, "%d %d %d\n", min, z, t);
fclose(f);
fclose(g);
return 0;
}