#include <stdio.h>
int n,m,i,j,vr[110][110],vj[110][110],iv,jv,vf[110][110],ll,cc,minn=10000,tmin=100000;
char vin[110][110];
int di[9]={0,1,1,1,0,-1,-1,-1,0};
int dj[9]={0,1,0,-1,-1,-1,0,1,1};
struct coada{
int i,j,c;
};
coada cr[10010],cj[10010],a;
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",&vin[i][j]);
if(vin[i][j]=='R'){
vr[i][j]=1;
cr[1].i=i;
cr[1].j=j;
cr[1].c=1;
}
if(vin[i][j]=='J'){
vj[i][j]=1;
cj[1].i=i;
cj[1].j=j;
cj[1].c=1;
}
if(vin[i][j]==' '){
vr[i][j]=vj[i][j]=32000;
}
if(vin[i][j]=='X'){
vr[i][j]=vj[i][j]=-1;
}
}
scanf("\n");
}
int in=1,sf=2;
while(in<sf){
a=cr[in];
in++;
for(i=1;i<=8;i++){
iv=a.i+di[i];
jv=a.j+dj[i];
if(0<iv && iv<=n && 0<jv && jv<=m && vr[iv][jv]!=-1 && a.c+1<vr[iv][jv]){
vr[iv][jv]=a.c+1;
cr[sf].i=iv;
cr[sf].j=jv;
cr[sf].c=a.c+1;
sf++;
}
}
}
in=1,sf=2;
while(in<sf){
a=cj[in];
in++;
for(i=1;i<=8;i++){
iv=a.i+di[i];
jv=a.j+dj[i];
if(0<iv && iv<=n && 0<jv && jv<=m && vj[iv][jv]!=-1 && a.c+1<vj[iv][jv]){
vj[iv][jv]=a.c+1;
cj[sf].i=iv;
cj[sf].j=jv;
cj[sf].c=a.c+1;
sf++;
}
}
}
/*for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
printf("%d ",vj[i][j]);
}
printf("\n");
}*/
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
if(vr[i][j]==vj[i][j] && vr[i][j]!=-1 && vr[i][j]!=32000){
tmin=vr[i][j];
ll=i;
cc=j;
}
}
}
printf("%d %d %d",tmin,ll,cc);
return 0;
}