type d = record
x, y : longint;
end;
const f = 'rj.in'; g = 'rj.out';
const
dx : array[0..7] of shortint = (-1,1,0,0,1,1,-1,-1);
dy : array[0..7] of shortint = (0,0,-1,1,1,-1,1,-1);
type vec = array[-4..101,-4..101] of longint;
var
ch : char;
nrp, min, ma,mb,mxa,mxb,i, j, x, y, n, m, p : longint;
a,b : vec;
drum : array[0..100001] of d;
sol,ince, sf : d;
function check ( x,y : longint ) : boolean;
begin
if ( x>0) and( x<=n) and ( y>0) and (y<=m) then check := true
else check := false;
end;
procedure lee;
var
k, st, dr, ii ,jj : longint;
begin
st := 0;
dr := 1;
drum[st]:= ince;
//drum[st].x := 1;
//drum[st].y := 1;
//a[1,1]:=0;
//a[1,1] := 1;
while (st <= dr) do
begin
for k := 0 to 7 do
begin
ii := drum[st].x + dx[k];
jj := drum[st].y + dy[k];
if check(ii,jj) and ( a[ii,jj] = 0 ) then
begin
drum[dr].x := ii;
drum[dr].y := jj;
a[ii,jj] := a[drum[st].x,drum[st].y]+1;
inc ( dr );
end;
end;
inc( st );
end;
end;
procedure lee2;
var
k, st, dr, ii ,jj : longint;
begin
st := 0;
dr := 1;
drum[st] := sf;
//drum[st].x := n;
//drum[st].y := m;
//b[1,1]:=0;
//b[n,m] := 1;
while (st <= dr) do
begin
for k := 0 to 7 do
begin
ii := drum[st].x + dx[k];
jj := drum[st].y + dy[k];
if check(ii,jj) and ( b[ii,jj] = 0 ) then
begin
drum[dr].x := ii;
drum[dr].y := jj;
b[ii,jj] := b[drum[st].x,drum[st].y]+1;
inc ( dr );
end;
end;
inc( st );
end;
end;
begin
assign( input,f ); reset( input );
assign( output,g ); rewrite( output );
readln(n, m);
for i := 1 to n do
begin
for j := 1 to m do
begin
read( ch );
if ch = 'X' then begin a[i,j] := -1; b[i,j] := -1; end;
if ch = 'R' then begin a[i,j] := 0; ince.x := i; ince.y := j; end;
if ch = 'J' then begin b[i,j] := 0; sf.x := i; sf.y := j; end;
if ch = ' ' then begin a[i,j] := 0; b[i,j] := 0; end;
end;
readln;
end;
lee();
{
for i := 1 to n do begin
for j := 1 to m do write(a[i,j]:3);
writeln;
end;
writeln;
}
lee2();
{
for i := 1 to n do begin
for j := 1 to m do begin write(b[i,j]:3);
if mb>b[i,j] then mb:=b[i,j];
if mxb<b[i,j] then mxb:=b[i,j];end;
writeln;
end;
writeln('min a ',ma,' ','max a ',mxa);
writeln('min b ',mb,' ','max b ',mxb);
}
min := 99999999;
//min := maxlongint;
for i := 1 to n do
for j := 1 to m do begin
if (a[i,j]=b[i,j]) and (a[i,j]>0) and (a[i,j]<min) then begin
min := a[i,j];
sol.x := i;
sol.y := j;
end;
end;
writeln( min+1,' ', sol.x,' ',sol.y );
end.