program rj;
{$APPTYPE CONSOLE}
uses
SysUtils;
const a : array [1..8] of integer= (-1,0,1,+0,-1,+1,+1,-1);
const b : array [1..8] of integer = (+0,1,0,-1,+1,+1,-1,-1);
//nord, est, sud ,vest, nordest, sud est, sudvest, nordvest
type rec = record
x,y:byte;
c:Word;
end;
var fin,fout:text;
i,j,n,m,st,newx,newy,xn,yn,min,minx,miny:longint;
c:char;
ro,ju:array [1..100,1..100] of integer;
x,y:array [1..10000] of rec;
{*-----------------------------------------------*}
{*-----------------------------------------------*}
begin
assign(fin,'rj.in'); reset(fin); assign(fout,'rj.out'); rewrite(fout);
readln(fin,n,m);
for i:=1 to n do
begin
for j:=1 to m do
begin
read(fin,c);
case c of
#13:break;
'X':begin ro[i,j]:=-1; ju[i,j]:=-1; end;
'R':begin
inc(xn);
ro[i,j]:=-2;
x[xn].x:=i;
x[xn].y:=j;
x[xn].c:=1;
end;
' ':begin ro[i,j]:=0; ju[i,j]:=0; end;
'J':begin
inc(yn);
ju[i,j]:=-2;
y[yn].x:=i;
y[yn].y:=j;
y[yn].c:=1;
end;
end;
end;
readln(fin);
end;
{ for i:=1 to n do
begin
for j:=1 to m do write(fout,ro[i,j],' ');
writeln(fout);
end;
writeln(fout); }
i:=0;
while i <xn do
begin
inc(i);
for j:=1 to 8 do
begin
newx:=x[i].x+a[j];
newy:=x[i].y+b[j];
if (newx > 0) and (newy>0) and (newx<=n) and (newy<=m) then
if ro[newx,newy] = 0 then
begin
ro[newx,newy]:=x[i].c+1;
inc(xn);
x[xn].x:=newx;
x[xn].y:=newy;
x[xn].c:=x[i].c+1;
end;
end;
end;
i:=0;
while i <=yn do
begin
inc(i);
for j:=1 to 8 do
begin
newx:=y[i].x+a[j];
newy:=y[i].y+b[j];
if (newx>0)and (newy>0) and (newx<=n) and (newy<=m) then
if ju[newx,newy] = 0 then
begin
ju[newx,newy]:=y[i].c+1;
inc(yn);
y[yn].x:=newx;
y[yn].y:=newy;
y[yn].c:=y[i].c+1;
end;
end;
end;
{ for i:=1 to n do
begin
for j:=1 to m do write(fout,ro[i,j]:2,' ');
writeln(fout);
end;
writeln(fout);
for i:=1 to n do
begin
for j:=1 to m do write(fout,ju[i,j]:2,' ');
writeln(fout);
end; }
min:=maxint;
for i:=1 to n do
begin
for j:=1 to m do
if (ro[i,j] = ju[i,j]) and (ro[i,j]>0) then
if min > ro[i,j] then
begin
min:=ro[i,j];
minx:=i;
miny:=j;
end;
end;
writeln(fout,min,' ',minx,' ',miny);
close(fin); Close(fout);
end.