const dx:array[1..8] of integer=(0,1,1,1,0,-1,-1,-1);
dy:array[1..8] of integer=(1,1,0,-1,-1,-1,0,1);
var r:array[1..150,1..150] of longint;
j:array[1..150,1..150] of longint;
q:array[1..30000,1..2] of longint;
f,g:text;
x:char;
n,m,i,k,dr,st,xx,yy,p,l,ri,rj,ji,jj,min:longint;
begin
assign(f,'rj.in');reset(f);
assign(g,'rj.out');rewrite(g);
readln(f,n,m);i:=0;
while not eof(f) do begin
inc(i);k:=0;
while not eoln(f) do begin
inc(k);
read(f,x);
case x of 'X':begin j[i,k]:=-1;r[i,k]:=-1;end;
'R':begin ri:=i;rj:=k;r[i,k]:=1;end;
'J':begin ji:=i;jj:=k;j[i,k]:=1;end;
' ':begin j[i,k]:=0;r[i,k]:=0;end;
end;
end;
readln(f);
end;
st:=1;dr:=1;q[1,1]:=ri;q[1,2]:=rj;
while dr<=st do begin
xx:=q[dr,1];yy:=q[dr,2];
for i:=1 to 8 do
if (xx+dx[i]<=n) and (xx+dx[i]>=1) and (yy+dy[i]<=m)
and (yy+dy[i]>=1) and (r[xx+dx[i],yy+dy[i]]=0) then begin
r[xx+dx[i],yy+dy[i]]:=r[xx,yy]+1;
inc(st);
q[st,1]:=xx+dx[i];q[st,2]:=yy+dy[i];
end;
inc(dr);
end;
st:=1;dr:=1;q[1,1]:=ji;q[1,2]:=jj;
while dr<=st do begin
xx:=q[dr,1];yy:=q[dr,2];
for i:=1 to 8 do
if (xx+dx[i]<=n) and (xx+dx[i]>=1) and (yy+dy[i]<=m)
and (yy+dy[i]>=1) and (j[xx+dx[i],yy+dy[i]]=0) then begin
j[xx+dx[i],yy+dy[i]]:=j[xx,yy]+1;
inc(st);
q[st,1]:=xx+dx[i];q[st,2]:=yy+dy[i];
end;
inc(dr);
end;
min:=3200;
for i:=1 to n do
for k:=1 to m do
if (r[i,k]<>-1) and (r[i,k]<>0) and (r[i,k]=j[i,k]) and (r[i,k]<min) then begin
min:=r[i,k];
p:=i;
l:=k;
end;
writeln(g,min,' ',p,' ',l);
close(g);
end.