program RJ;
const dl:array[1..8] of shortint=(-1,-1,-1,0,1,1,1,0);
dc:array[1..8] of shortint=(-1,0,1,1,1,0,-1,-1);
type harta=array[0..101,0..101] of integer;
var x,y,v:array[1..50] of integer;
a,b:harta;
m,n,lr,cr,lj,cj,k,d,l,c,dmin,i,j:integer;
f:text;
procedure date;
var f:text;
c:char;
begin
assign(f,'rj.in');
reset(f);
readln(f,m,n);
for i:=1 to m do
begin
for j:=1 to n do
begin
read(f,c);
if c='X' then a[i,j]:=-1;
if (c=' ')or(c='R')or (c='J') then a[i,j]:=m*n+1;
if c='R' then
begin
lr:=i;cr:=j;
end;
if c='J' then
begin
lj:=i;cj:=j;
end;
end;
readln(f);
end;
close(f);
for i:=0 to m+1 do
begin
a[i,0]:=-1;
a[i,n+1]:=-1;
end;
for j:=0 to n+1 do
begin
a[0,j]:=-1;
a[m+1,j]:=-1;
end;
for i:=0 to m+1 do
for j:=0 to n+1 do
b[i,j]:=a[i,j];
end;
function as(k:integer;var d:integer):boolean;
begin
if v[k]=8 then
begin
as:=false;
v[k]:=0;
end
else
begin
as:=true;
v[k]:=v[k]+1;
d:=v[k];
end;
end;
procedure tipar (var a:harta);
begin
for i:=1 to m do
begin
for j:=1 to n do
write(a[i,j]:3);
writeln;
end;
writeln;
end;
procedure fill(l,c:integer; var a:harta);
begin
k:=1;x[1]:=l;y[1]:=c;a[l,c]:=1;
while k>0 do
begin
while as(k,d) do
if a[x[k]+dl[d],y[k]+dc[d]]>k+1 then
begin
k:=k+1;
x[k]:=x[k-1]+dl[d]; y[k]:=y[k-1]+dc[d];
a[x[k],y[k]]:=k;
end;
k:=k-1;
end;
end;
begin
date;
{ l:=lr;c:=cr;
k:=1;x[1]:=l;y[1]:=c;a[l,c]:=1;
while k>0 do
begin
while as(k,d) do
if a[x[k]+dl[d],y[k]+dc[d]]>k+1 then
begin
k:=k+1;tipar(a);readln;
x[k]:=x[k-1]+dl[d]; y[k]:=y[k-1]+dc[d];
a[x[k],y[k]]:=k;
end;
k:=k-1;
end; }
fill(lr,cr,a);
{ tipar(a);}
fill(lj,cj,b);
{tipar(b);}
dmin:=m*n+1;
for i:=1 to m do
for j:=1 to n do
if (a[i,j]=b[i,j])and(a[i,j]<>-1)and(a[i,j]<>m*n+1) then
if a[i,j]<dmin then
begin
l:=i;k:=j;dmin:=a[i,j];
end;
assign(f,'rj.out');
rewrite(f);
write(f,dmin,' ',l,' ',k);
close(f);
end.