#include <stdio.h>
#include <limits.h>
#include <string.h>
#include <stdlib.h>
#define DIM 101
FILE *f=fopen("rj.in","r");
FILE *g=fopen("rj.out","w");
int N,M;
char A[DIM][DIM],B[DIM][DIM];
int DR[DIM][DIM],DJ[DIM][DIM];
int di[8]={-1,1,0,0,-1,1,1,-1};
int dj[8]={0,0,1,-1,-1,1,-1,1};
struct deplasare{
int i;
int j;
};
deplasare C[DIM*DIM];
void coada(char x,char y,int i,int j,char A[DIM][DIM],int DR[DIM][DIM]){
int p=1,u=1;
C[p].i=i;
C[p].j=j;
A[i][j]=y;
while(p<=u){
for(register int d=0;d<=7;d++){
int iv=C[p].i+di[d];
int jv=C[p].j+dj[d];
if(A[iv][jv]==x){
A[iv][jv]=y;
C[++u].i=iv;
C[u].j=jv;
DR[iv][jv]=DR[C[p].i][C[p].j]+1;
}
}
p++;
}
}
int main(void){
register int i,j;
fscanf(f,"%d %d\n",&N,&M);
for(i=1;i<=N;i++){
fgets(A[i]+1,10001,f);
for(j=strlen(A[i]+1)-1;j<=M;j++){
if(A[i][j]!='X' && A[i][j]!='R' && A[i][j]!='J')
A[i][j]=' ';
}
A[i][M+1]=0;
strcpy(B[i]+1,A[i]+1);
}
for(i=1;i<=N;i++){
for(j=1;j<=M;j++){
if(A[i][j]=='R')
coada(' ','.',i,j,A,DR);
if(B[i][j]=='J')
coada(' ','.',i,j,B,DJ);
}
}
int Ci,Cj;
int Min=INT_MAX;
for(i=1;i<=N;i++){
for(j=1;j<=M;j++){
if(DR[i][j]>0 && DJ[i][j]==DR[i][j] && DR[i][j]<Min)
Min=DR[i][j],Ci=i,Cj=j;
}
}
fprintf(g,"%d %d %d",Min+1,Ci,Cj);
fclose(f);
fclose(g);
return 0;
}