#include <stdio.h>
using namespace std;
FILE *f=fopen("rj.in","rt");
FILE *g=fopen("rj.out","wt");
int dr[101][101],dj[101][101],i,j,n,t,m1,k,ir,jr,ij,jj,v1,v2,imin,jmin,m;
int p1[]={-1,-1,-1,0,1,1,1,0};
int p2[]={-1,0,1,1,1,0,-1,-1};
struct ceva{int a,b;}c[10001];
char z;
int main()
{
fscanf(f,"%d %d",&n,&m);fscanf(f,"%c",&z);
for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
{
fscanf(f,"%c",&z);
if(z=='X')
dr[i][j]=dj[i][j]=-1;
else if(z=='R')
{dr[i][j]=1;
ir=i;
jr=j;}
else if(z=='J')
{dj[i][j]=1;
ij=i;
jj=j;}
else dj[i][j]=dr[i][j]=0;
}fscanf(f,"%c",&z);}
i=t=1;
c[i].a=ir;
c[i].b=jr;
while(i<=t)
{ir=c[i].a;
jr=c[i].b;
for(k=0;k<=7;k++)
{
v1=ir+p1[k];
v2=jr+p2[k];
if(v1>0&&v1<=n&&v2>0&&v2<=m&&dr[v1][v2]==0)
{
t++;
c[t].a=v1;
c[t].b=v2;
dr[v1][v2]=dr[ir][jr]+1;
}
}
++i;
}
i=t=1;
c[i].a=ij;
c[i].b=jj;
while(i<=t)
{ij=c[i].a;
jj=c[i].b;
for(k=0;k<=7;k++)
{
v1=ij+p1[k];
v2=jj+p2[k];
if(v1>0&&v1<=n&&v2>0&&v2<=m&&dj[v1][v2]==0)
{
t++;
c[t].a=v1;
c[t].b=v2;
dj[v1][v2]=dj[ij][jj]+1;
}
}
++i;
}
m1=32000;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(dr[i][j]==dj[i][j]&&dr[i][j]<m1&&dr[i][j]>0)
{
m1=dr[i][j];
imin=i;
jmin=j;
}
fprintf(g,"%d %d %d",m1,imin,jmin);
fclose(f);
fclose(g);
return 0;
}