#include <iostream>
#include<stdio.h>
struct ind {
int lin, col;
}coada[40001];;
int a[176][176], b[176][176];
int linie[]={-1,-1,0,1,1,1,0,-1};
int colo[]={0,1,1,1,0,-1,-1,-1};
using namespace std;
int main() {
FILE *fin, *fout;
int n, m, lc, cc, i, st, dr, l, pix, piy, pfx, pfy, col, lin, j, min, linn, coll,x, ok;
char c;
fin=fopen("rj.in", "r");
fout=fopen("rj.out", "w");
fscanf( fin, "%d %d", &n, &m);
fscanf( fin, "%c", &c);
for(i=1;i<=n;i++) {
ok=1;
for(j=1;j<=m;j++) {
fscanf( fin, "%c", &c);
if(c=='\n') {
ok=0;
j=m+1;
}
if(c=='X') {
a[i][j]=-1;
b[i][j]=-1;
}
if(c=='R') {
piy=i;
pix=j;
}
if(c=='J') {
pfy=i;
pfx=j;
}
}
if(ok==1) {
fscanf( fin, "%c", &c);
}
}
for(i=0;i<=n+1;i++) {
a[i][0]=-1;
a[i][m+1]=-1;
b[i][0]=-1;
b[i][m+1]=-1;
}
for(j=0;j<=m+1;j++) {
a[0][j]=-1;
a[n+1][j]=-1;
b[0][j]=-1;
b[n+1][j]=-1;
}
st=dr=1;
coada[1].lin=pfy;
coada[1].col=pfx;
b[pfy][pfx]=1;
while(st<=dr) {
for(i=0;i<8;i++) {
if(b[coada[st].lin+linie[i]][coada[st].col+colo[i]]==0) {
dr++;
coada[dr].lin=coada[st].lin+linie[i];
coada[dr].col=coada[st].col+colo[i];
b[coada[dr].lin][coada[dr].col]=b[coada[st].lin][coada[st].col]+1;
}
}
st++;
}
st=dr=1;
coada[1].lin=piy;
coada[1].col=pix;
a[piy][pix]=1;
while(st<=dr) {
for(i=0;i<8;i++) {
if(a[coada[st].lin+linie[i]][coada[st].col+colo[i]]==0) {
dr++;
coada[dr].lin=coada[st].lin+linie[i];
coada[dr].col=coada[st].col+colo[i];
a[coada[dr].lin][coada[dr].col]=a[coada[st].lin][coada[st].col]+1;
}
}
st++;
}
min=1000000;
for(i=1;i<=n;i++) {
for(j=1;j<=m;j++) {
if(a[i][j]==b[i][j] && a[i][j]>0) {
if(a[i][j]<min) {
min=a[i][j];
linn=i;
coll=j;
}
}
}
}
fprintf( fout, "%d %d %d", min, linn, coll);
fclose( fin );
fclose( fout );
return 0;
}