#include <stdio.h>
FILE *f=fopen("rj.in","r");
FILE *g=fopen("rj.out","w");
int N,M,XR,YR,XJ,YJ;
bool a[110][110];
int di[8]={-1,-1,-1,0,1,1,1,0};
int dj[8]={-1,0,1,1,1,0,-1,-1};
struct coada{
int i;
int j;
int d;
int o;
};
coada C[110*110];
int main(void){
register int i,j,ch;
fscanf(f,"%d %d\n",&N,&M);
for(i=1;i<=N;i++){
for(j=1;j<=M;j++){
fscanf(f,"%c",&ch);
if(ch!=' ')
a[i][j]=true;
if(ch=='R')
XR=i,YR=j;
else if(ch=='J')
XJ=i,YJ=j;
}
fscanf(f,"\n");
}
int p,u,d,iv,jv;
bool ok=false;
p=u=1;
C[p].i=XR;
C[p].j=YR;
C[p].d=1;
while(p<=u){
for(d=0;d<8;d++){
iv=C[p].i+di[d];
jv=C[p].j+dj[d];
if(iv>=1 && iv<=N && jv>=1 && jv<=M && !a[iv][jv])
C[++u].i=iv,C[u].j=jv,C[u].d=C[p].d+1,C[u].o=p,a[iv][jv]=true;
if(iv>=1 && iv<=N && jv>=1 && jv<=M && iv==XJ && jv==YJ){
C[++u].i=iv,C[u].j=jv,C[u].d=C[p].d+1,C[u].o=p;
ok=true;
break;
}
}
if(ok)
break;
p++;
}
d=(C[u].d+1)/2;
fprintf(g,"%d ",d);
int t=1;
while(t<d){
u=C[u].o;
t++;
}
fprintf(g,"%d %d",C[u].i,C[u].j);
fclose(f);
fclose(g);
return 0;
}