program rj;
var f,g:text;
a,b:array[0..102,0..102] of integer;
dx:array[1..8] of integer=(0,0,1,-1,-1,1,-1,1);
dy:array[1..8] of integer=(-1,1,0,0,-1,1,1,-1);
m,n,i,j,rx,ry,jx,jy,xmin,ymin:integer;
vrx,vry,vjx,vjy:array[1..100000] of longint;
x:char;
st,sf,tmin:longint;
begin
assign (F,'rj.in'); reset (f);
assign (g,'rj.out');rewrite (G);
readln (f,n,m);
for i:=1 to n do
begin
for j:=1 to m do
begin
read (f,x);
if x='R' then
begin
rx:=i; ry:=j;
end
else
if x='J' then
begin
jx:=i; jy:=j;
end
else
if x='X' then
begin
a[i,j]:=-1; b[i,j]:=-1;
end;
end;
readln (F);
end;
for i:=0 to n+1 do
begin
a[i,0]:=-1; a[i,m+1]:=-1;
b[i,0]:=-1; b[i,m+1]:=-1;
end;
for j:=0 to m+1 do
begin
a[0,j]:=-1; a[n+1,j]:=-1;
b[0,j]:=-1; b[n+1,j]:=-1;
end;
a[rx,ry]:=1;
vrx[1]:=rx; vry[1]:=ry; st:=0; sf:=1;
while st<sf do
begin
st:=st+1;
for i:=1 to 8 do
if a[vrx[st]+dx[i],vry[st]+dy[i]]=0 then
begin
a[vrx[st]+dx[i],vry[st]+dy[i]]:=a[vrx[st],vry[st]]+1;
sf:=sf+1;
vrx[sf]:=vrx[st]+dx[i];
vry[sf]:=vry[st]+dy[i];
end;
end;
b[jx,jy]:=1; vjx[1]:=jx; vjy[1]:=jy; st:=0; sf:=1;
while st<sf do
begin
st:=st+1;
for i:=1 to 8 do
if b[vjx[st]+dx[i],vjy[st]+dy[i]]=0 then
begin
b[vjx[st]+dx[i], vjy[st]+dy[i]]:=b[vjx[st],vjy[st]]+1;
sf:=sf+1;
vjx[sf]:=vjx[st]+dx[i];
vjy[sf]:=vjy[st]+dy[i];
end;
end;
tmin:=maxlongint; xmin:=-1; ymin:=-1;
for i:=1 to n do
for j:=1 to m do
if a[i,j]=b[i,j] then
if (a[i,j]<tmin) and (a[i,j]<>-1) and (a[i,j]<>0) then
begin
tmin:=a[i,j]; xmin:=i; ymin:=j;
end;
write (g,tmin,' ',xmin, ' ',ymin);
close (F); close (g);
end.