#include <cstdio>
FILE*f=fopen("rj.in","r");
FILE*g=fopen("rj.out","w");
int n,m;
short lx,cx,ly,cy;
const short dl[]={0,-1,-1,0,+1,+1,+1,+0,-1};
const short dc[]={0,+0,+1,1,+1,+0,-1,-1,-1};
short x[102][102],y[102][102];
void out(short x[102][102])
{
int i,j;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
fprintf(g,"%4d ",x[i][j]);
fprintf(g,"\n");
}
fprintf(g,"\n");
}
void citire()
{
int i,j;
char k[102];
fscanf(f,"%d%d",&n,&m);
fgets(k,2,f);
for(i=1;i<=n;i++)
{
fgets(k,m+2,f);
for(j=0;j<m;j++)
{
x[i][j+1]=y[i][j+1]=k[j];
if(x[i][j+1]=='R')
{lx=i;cx=j+1;}
else if(x[i][j+1]=='J')
{ly=i;cy=j+1;}
else if(x[i][j+1]=='X')
x[i][j+1]=y[i][j+1]=-1;
else if(x[i][j+1]==' ')
x[i][j+1]=y[i][j+1]=0;
}
}
}
void bord()
{
int i;
for(i=0;i<=n+1;i++)
x[i][0]=x[i][m+1]=y[i][0]=y[i][m+1]=-1;
for(i=0;i<=m+1;i++)
x[0][i]=x[n+1][i]=y[0][i]=y[n+1][i]=-1;
}
void jaler()
{
short cl[10003],cc[10003],in,sf,i,nl,nc,ccc,ll;
in=sf=1;
cl[1]=lx;
cc[1]=cx;
x[lx][cx]=1;
while(in<=sf)
{
nl=cl[in];
nc=cc[in];
for(i=1;i<=8;i++)
{
ll=nl+dl[i];
ccc=nc+dc[i];
if(x[ll][ccc]==0)
{
sf++;
cl[sf]=ll;
cc[sf]=ccc;
x[ll][ccc]=x[nl][nc]+1;
}
}
in++;
}
}
void jalej()
{
short cl[10003],cc[10003],in,sf,i,nl,nc,ccc,ll;
in=sf=1;
cl[1]=ly;
cc[1]=cy;
y[ly][cy]=1;
while(in<=sf)
{
nl=cl[in];
nc=cc[in];
for(i=1;i<=8;i++)
{
ll=nl+dl[i];
ccc=nc+dc[i];
if(y[ll][ccc]==0)
{
sf++;
cl[sf]=ll;
cc[sf]=ccc;
y[ll][ccc]=y[nl][nc]+1;
}
}
in++;
}
}
int mini()
{
int i,j,mn=0,lmn=0,cmn=0;
mn=9999;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
if(x[i][j]>0 and x[i][j]==y[i][j] and x[i][j]<mn)
{
mn=x[i][j];
lmn=i;
cmn=j;
}
}
fprintf(g,"%d %d %d\n",mn,lmn,cmn);
}
int main()
{
citire();
bord();
jaler();
jalej();
mini();
return 0;
}