# include <cstdio>
# define N 101
# define M 101
using namespace std;
int n,a[N][M],b[N][M],i,j,ob,x,y,Q[N*M+1][2],m,x1,x2,tmin=0,ics1,ics2;
char caracter;
const int dx[]= {-1, 0, 1, 0, 1, 1,-1,-1};
const int dy[]= { 0, 1, 0,-1, 1,-1, 1,-1};
void lee (int a[N][M]){
for (int st=0,dr=1;st<=dr;++st){
int rec[2];//treb un for..
rec[0]=Q[st][0];
rec[1]=Q[st][1];
for (int k=0;k<8;++k){//ai 8 directii ma:P. ok
int acm[2];
acm[0]=rec[0]+dx[k];
acm[1]=rec[1]+dy[k];
if (acm[0]>0 and acm[0]<=n and acm[1]>0 and acm[1]<=m){//coloana..:P
if (a[acm[0]][acm[1]]==0){
a[acm[0]][acm[1]]=a[rec[0]][rec[1]]+1;
Q[dr][0]=acm[0];
Q[dr][1]=acm[1];
++dr;
/*if (acm[0]==x && acm[1]==y){
tmin=a[acm[0]][acm[1]];
//printf ("%d\n",a[acm[0]][acm[1]]);
return ; //aici nu!!! ca tu formazi toata matricea da oleaca sa afiseze a[][] si b[][]
}*/
}
}
}
}
}
int main (){
freopen ("rj.in","r",stdin);
freopen ("rj.out","w",stdout);
scanf ("%d%d",&n,&m);
scanf ("%c",&caracter);
while (caracter!='\n') scanf ("%c",&caracter);
for (i=1;i<=n;++i){
for (j=1;j<=m;++j){
scanf ("%c",&caracter);
if(caracter=='R'){
a[i][j]=1;
x1=i; x2=j;
}
if(caracter=='X'){
a[i][j]=-1;
b[i][j]=-1;
}else
if(caracter=='J'){
x=i; y=j;
b[i][j]=1;
}
}
if (caracter !='\n')
scanf ("%c",&caracter);
while (caracter!='\n' && i<n) scanf ("%c",&caracter);//da-i compile-run
}//deci el nu vede J-ul stai
//for (i=1;i<=n;++i,printf ("\n"))
// for (j=1;j<=m;++j) printf ("%d",b[i][j]);
ics1=x;
ics2=y;
/*for (i=1;i<=n;++i,printf("\n"))
for (j=1;j<=n;++j){
if (a[i][j]!=-1) printf(" ");
printf ("%d",a[i][j]);
}*/
i=x1; j=x2; //gata am vazut:))
Q[0][0]=i;//uite aici
Q[0][1]=j;
a[i][j]=1;
lee (a);
for (i=1;i<=n;++i/*,printf("\n")*/)
for (j=1;j<=m;++j){
//if (b[i][j]!=-1) printf(" ");
//printf ("%d",a[i][j]);
}
// tmin/=2;
// printf("%d ",tmin);
// printf("%d %d\n",Q[tmin][0],Q[tmin][1]);
//nu asa
//stai
/*for (i=1;i<=n;++i){
for (j=1;j<=m;++j)
printf("%d",a[i][j]);
printf("\n");
}*/
//stai putin sa ma gandesc
//stai ma... tu de ce faci Q[0][0]=i???daca tu ai poz de inceput x1 si y1 si x si y??? dai compile-run
for (int i=1;i<=N*M;++i) Q[i][0]=Q[i][1]=0;
Q[0][0]=ics1;
Q[0][1]=ics2;
b[i][j]=1;
lee (b);
//for (i=1;i<=n;++i,printf("\n"))
// for (j=1;j<=n;++j){
// if (a[i][j]!=-1) printf(" ");
// printf ("%d",b[i][j]);
// }
//printf("\n");
/*for (i=1;i<=n;++i){
for (j=1;j<=m;++j)
printf("%d",b[i][j]);
printf("\n");*/
//:Pe }//mai pai faci lee si pentru romeo si pentru julieta. am facut si asa. problema mea e cu citirea caracterului spatai asa
//si acum
int minim=100000000;
for (i=1;i<=n;++i)
for (j=1;j<=m;++j)//dai
if (a[i][j]==b[i][j] && a[i][j]>0)
if (minim>a[i][j]){
minim=a[i][j];
x=i;
y=j;
}
printf ("%d %d %d\n",minim,x,y);//
return 0;
}