#include<stdio.h>
int ro[100][100],ju[100][100];
struct POS{
int x,y;
};
void lee(POS start, int mat[100][100])
{
int i,j,u,p,coada[10100][2],x[2],y[2];
int dlin[8]={-1,-1,0,1,1,1,0,-1};
int dcol[8]={0,1,1,1,0,-1,-1,-1};
u=p=0;
mat[start.x][start.y]=1;
coada[u][0]=start.x;
coada[u++][1]=start.y;
while(p!=u)
{
x[0]=coada[p][0];
x[1]=coada[p++][1];
for(i=0;i<8;++i)
{
y[0]=x[0]+dlin[i];
y[1]=x[1]+dcol[i];
if(!mat[y[0]][y[1]])
{
mat[y[0]][y[1]]=mat[x[0]][x[1]]+1;
coada[u][0]=y[0];
coada[u++][1]=y[1];
}
}
}
}
int main()
{
int m,n,x,y,i,j,tmin=100000;
POS rom,jul;
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
scanf("%d%d\n",&n,&m);
char c;
for(i=0;i<=n+1;++i)
ro[i][0]=ju[i][0]=ro[i][m+1]=ju[i][m+1]=-1;
for(i=0;i<=m+1;++i)
ro[0][i]=ju[0][i]=ro[n+1][i]=ju[n+1][i]=-1;
for(i=1;i<=n;++i)
{
for(j=1;j<=m;++j)
{
scanf("%c",&c);
if(c=='X')
ro[i][j]=ju[i][j]=-1;
if(c=='R')
{
rom.x=i;
rom.y=j;
}
if(c=='J')
{
jul.x=i;
jul.y=j;
}
}
scanf("\n");
}
lee(rom,ro);
lee(jul,ju);
for(i=1;i<=n;++i)
for(j=1;j<=m;++j)
if(ro[i][j]==ju[i][j])
{
if(tmin>ro[i][j]&&ro[i][j]>0)
{
tmin=ro[i][j];
x=i;
y=j;
}
}
printf("%d %d %d",tmin,x,y);
return 0;
}