{$M 65520,0,655360}
const
fi='rj.in';
fo='rj.out';
nmax=100;mmax=100;
dl:array[1..8] of integer=(-1,-1, 0, 1, 1, 1, 0,-1);
dc:array[1..8] of integer=( 0, 1, 1, 1, 0,-1,-1,-1);
type
mat=array[1..nmax,1..mmax] of integer;
var
f:text;
A:array[1..nmax,1..mmax] of -1..1;
i,n,m,k,l,c:shortint;
b:char;
xpr,ypr,xpj,ypj:shortint;
R,J:mat;
min:integer;
procedure Lee(var D:mat;l,k:shortint);
type punct=record
l,c:0..100;
end;
var C:array[1..nmax*mmax] of punct;
pc,uc,i,lv,cv:integer;
begin
for i:=1 to nmax*mmax do begin
C[i].l:=0;
C[i].c:=0;
end;
pc:=1; uc:=1;
D[l,k]:=1;
C[pc].l:=l;
C[pc].c:=k;
while (pc<=uc) do
begin
for i:=1 to 8 do
begin
lv:=C[pc].l+dl[i];
cv:=C[pc].c+dc[i];
if (lv>=1)and (lv<=n) and (cv>=1) and (cv<=m) then
if (A[lv,cv]=0)and (D[lv,cv]=0) then begin
D[lv,cv]:=D[C[pc].l,C[pc].c]+1;
uc:=uc+1;
C[uc].l:=lv;
C[uc].c:=cv;
end;
end;
pc:=pc+1;
end;
end;
Begin
assign(f,fi); reset(f);
readln(f,n,m);
for i:=1 to n do
begin
for k:=1 to m do
begin
read(f,b);
case b of
'X': A[i,k]:=1;
' ': A[i,k]:=0;
'R': begin xpr:=i; ypr:=k; A[i,k]:=0; end;
'J': begin xpj:=i; ypj:=k; A[i,k]:=0; end;
end;
end;
readln(f);
end;
Lee(R,xpr,ypr);
Lee(J,xpj,ypj);
min:=MaxInt;
For i:=1 to n do
For k:=1 to m do
if (R[i,k]=J[i,k]) and (R[i,k]<min) and (R[i,k]>0) and (J[i,k]>0)then begin
min:=R[i,k];
l:=i;
c:=k;
end;
assign(f,fo);
rewrite(f);
write(f,min,' ',l,' ',c);
close(f);
End.