#include<stdio.h>
#define Nmax 102
FILE *fin=freopen("rj.in","r",stdin),
*fout=freopen("rj.out","w",stdout);
int n,m,r[Nmax][Nmax],ju[Nmax][Nmax],xr,yr,xj,yj;
const int dx[]={-1,-1,-1, 0, 0, 1,1,1},
dy[]={-1, 0, 1,-1, 1,-1,0,1};
void citire()
{
scanf("%d %d",&n,&m);
fgetc(fin);
for(int i=0;i<n;i++)
for(int j=0;j<m;)
{
char ch=fgetc(fin);
if(ch=='X')
{
r[i][j]=ju[i][j]=-1;
j++;
}
if(ch=='R')
{
xr=i;
yr=j;
}
if(ch=='J')
{
xj=i;
yj=j;
}
if(ch==' '||ch=='R'||ch=='J')j++;
}
}
void lee(int a[Nmax][Nmax], int xi,int yi)
{
int x[Nmax*Nmax],y[Nmax*Nmax],dist[Nmax*Nmax],li,lf;
x[li=lf=1]=xi;
y[1]=yi;
a[xi][yi]=1;
dist[li]=1;
int xc,yc,xvec,yvec;
while(li<=lf)
{
xc=x[li];
yc=y[li];
for(int i=0;i<8;i++)
{
xvec=xc+dx[i];
yvec=yc+dy[i];
if(xvec>=0 && yvec>=0 && xvec<n && yvec<m)
if(a[xvec][yvec]==0)
{
lf++;
x[lf]=xvec;
y[lf]=yvec;
a[xvec][yvec]=a[xc][yc]+1;
}
}
li++;
}
}
void solve()
{
lee(r,xr,yr);
lee(ju,xj,yj);
int x,y,tmin=Nmax*Nmax+1;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
if(r[i][j]==ju[i][j] && r[i][j]>0)
if(r[i][j]<tmin)
{
tmin=r[i][j];
x=i;
y=j;
}
printf("%d %d %d",tmin,x+1,y+1);
}
int main()
{
citire();
solve();
return 0;
}