const v1:array[1..8]of shortint=(-1,-1,-1,0,0,1,1,1);
v2:array[1..8]of shortint=(-1,0,1,-1,1,-1,0,1);
var f,g:text;
n,m,i,j,lr,cr,lj,cj,min:longint;
x:char;
a,b:array[0..110,0..110]of integer;
procedure lee(l,c:longint);
var vl,vc,v:array[0..11000]of integer;
p,h,i:longint;
begin
vl[1]:=l;
vc[1]:=c;
v[1]:=1;
p:=1;
h:=1;
while (p<=h)do
begin
for i:=1 to 8 do
if (a[vl[p]+v1[i],vc[p]+v2[i]]=0)and(vl[p]+v1[i]>0)and
(vl[p]+v1[i]<=n)and(vc[p]+v2[i]>0)and(vc[p]+v2[i]<=m)then
begin
inc(h);
vl[h]:=vl[p]+v1[i];
vc[h]:=vc[p]+v2[i];
v[h]:=v[p]+1;
a[vl[p]+v1[i],vc[p]+v2[i]]:=v[h];
end;
inc(p);
end;
end;
begin
assign(f,'rj.in');
assign(g,'rj.out');
reset(f);
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='X')then a[i,j]:=-1 else
if (x='R')then
begin
lr:=i;
cr:=j;
end else
if (x='J')then
begin
lj:=i;
cj:=j;
end;
end;
readln(f);
end;
a[lr,cr]:=1;
lee(lr,cr);
b:=a;
for i:=1 to n do
for j:=1 to m do
if (a[i,j]<>-1)then
a[i,j]:=0;
a[lj,cj]:=1;
lee(lj,cj);
min:=maxint;
for i:=1 to n do
for j:=1 to m do
if (a[i,j]=b[i,j])and(a[i,j]>0)and(a[i,j]<min)then
begin
min:=a[i,j];
lr:=i;
cr:=j;
end;
writeln(g,min,' ',lr,' ',cr);
close(f);
close(g);
end.