#include<stdio.h>
#define M 101
int n,m,a[M][M],b[M][M],ri,rj,ji,jj,i,j;
char c;
void rezolva()
{int min,q,w;
min=32000;
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
if (a[i][j]==b[i][j]&&a[i][j]!=-1 &&a[i][j]<min)
min=a[i][j],q=i,w=j;
printf("%d %d %d\n",min,q,w);
}
void coada(int i,int j,int p[M][M])
{int q[10000][2],l,ii,jj,
dii[8]={1,1, 1,0, 0,-1,-1,-1},
djj[8]={0,1,-1,1,-1, 1, 0,-1};
q[1][0]=i;
q[1][1]=j;
p[i][j]=1;
for(i=1,l=1;i<=l;i++)
{
ii=q[i][0];jj=q[i][1];
for (j=0;j<8;j++)
if (p[ii+dii[j]][jj+djj[j]]==0 || p[ii][jj]+1<p[ii+dii[j]][jj+djj[j]])
q[++l][0]=ii+dii[j],q[l][1]=jj+djj[j],p[ii+dii[j]][jj+djj[j]]=p[ii][jj]+1;
}
}
int main()
{
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
scanf("%d %d\n",&n,&m);
for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
{
scanf("%c",&c);
if (c=='R') ri=i,rj=j;
else
if (c=='J') ji=i,jj=j;
else
if (c=='X') a[i][j]=-1,b[i][j]=-1;
else
a[i][j]=0,b[i][j]=0;
}
scanf("%c",&c);
}
for (i=0;i<=n+1;i++)
a[i][0]=-1,a[i][m+1]=-1,b[i][0]=-1,b[i][m+1]=-1;
for (i=0;i<=m+1;i++)
a[0][i]=-1,b[0][i]=-1,b[n+1][i]=-1,a[n+1][i]=-1;
coada(ri,rj,a);
coada(ji,jj,b);
rezolva();
return 0;
}