Program Rj;
type punct=record
x,y:integer;
end;
var a,aux:array [0..101,0..101] of integer;
b,c:array [1..10000] of punct;
i,j,k,n,m,k1,t,x,y,min,x1,y1:integer;
ch:char;
fi,fo:text;
procedure control_a(x,y:integer);
begin
if a[x-1,y]=-1 then begin
a[x-1,y]:=a[x,y]+1;
inc(k);
c[k].x:=x-1;
c[k].y:=y;
end;
if a[x+1,y]=-1 then begin
a[x+1,y]:=a[x,y]+1;
inc(k);
c[k].x:=x+1;
c[k].y:=y;
end;
if a[x,y-1]=-1 then begin
a[x,y-1]:=a[x,y]+1;
inc(k);
c[k].x:=x;
c[k].y:=y-1;
end;
if a[x,y+1]=-1 then begin
a[x,y+1]:=a[x,y]+1;
inc(k);
c[k].x:=x;
c[k].y:=y+1;
end;
if a[x+1,y+1]=-1 then begin
a[x+1,y+1]:=a[x,y]+1;
inc(k);
c[k].x:=x+1;
c[k].y:=y+1;
end;
if a[x-1,y+1]=-1 then begin
a[x-1,y+1]:=a[x,y]+1;
inc(k);
c[k].x:=x-1;
c[k].y:=y+1;
end;
if a[x+1,y-1]=-1 then begin
a[x+1,y-1]:=a[x,y]+1;
inc(k);
c[k].x:=x+1;
c[k].y:=y-1;
end;
if a[x-1,y-1]=-1 then begin
a[x-1,y-1]:=a[x,y]+1;
inc(k);
c[k].x:=x-1;
c[k].y:=y-1;
end;
end;
procedure control_aux(x,y:integer);
begin
if aux[x-1,y]=-1 then begin
aux[x-1,y]:=aux[x,y]+1;
inc(k);
c[k].x:=x-1;
c[k].y:=y;
end;
if aux[x+1,y]=-1 then begin
aux[x+1,y]:=aux[x,y]+1;
inc(k);
c[k].x:=x+1;
c[k].y:=y;
end;
if aux[x,y-1]=-1 then begin
aux[x,y-1]:=aux[x,y]+1;
inc(k);
c[k].x:=x;
c[k].y:=y-1;
end;
if aux[x,y+1]=-1 then begin
aux[x,y+1]:=aux[x,y]+1;
inc(k);
c[k].x:=x;
c[k].y:=y+1;
end;
if aux[x+1,y+1]=-1 then begin
aux[x+1,y+1]:=aux[x,y]+1;
inc(k);
c[k].x:=x+1;
c[k].y:=y+1;
end;
if aux[x-1,y+1]=-1 then begin
aux[x-1,y+1]:=aux[x,y]+1;
inc(k);
c[k].x:=x-1;
c[k].y:=y+1;
end;
if aux[x+1,y-1]=-1 then begin
aux[x+1,y-1]:=aux[x,y]+1;
inc(k);
c[k].x:=x+1;
c[k].y:=y-1;
end;
if aux[x-1,y-1]=-1 then begin
aux[x-1,y-1]:=aux[x,y]+1;
inc(k);
c[k].x:=x-1;
c[k].y:=y-1;
end;
end;
begin
assign(fi,'rj.in');
assign(fo,'rj.out');
reset(fi);
rewrite(fo);
readln(fi,n,m);
for i:=1 to n do begin
for j:=1 to m do begin
read(fi,ch);
if ch=' ' then begin a[i,j]:=-1; aux[i,j]:=-1; end;
if ch='X' then begin a[i,j]:=-2; aux[i,j]:=-1; end;
if ch='R' then begin x1:=i; y1:=j; end;
if ch='J' then begin x:=i; y:=j; end;
end;
readln(fi);
end;
k1:=1;
a[x1,y1]:=1;
aux[x,y]:=1;
a[x,y]:=-1;
aux[x1,y1]:=-1;
b[1].x:=x1; b[1].y:=y1;
while a[x,y]=-1 do begin
for i:=1 to k1 do control_a(b[i].x,b[i].y);
k1:=k;
k:=0;
for i:=1 to k1 do b[i]:=c[i];
end;
b[1].x:=x; b[1].y:=y; k1:=1; k:=0; min:=10000;
while aux[x1,y1]=-1 do begin
for i:=1 to k1 do control_aux(b[i].x,b[i].y);
k1:=k;
k:=0;
for i:=1 to k1 do b[i]:=c[i];
end;
for i:=1 to n do
for j:=1 to m do
if (a[i,j]=aux[i,j]) and (a[i,j]>0) and (a[i,j]<min) then begin
min:=a[i,j];
x:=i; y:=j;
end;
write(fo,min,' ',x,' ',y);
close(fo);
end.