#include <iostream>
#include <cstdio>
#include <cstring>
FILE *fin=fopen("rj.in", "r"), *fout=fopen("rj.out", "w");
using namespace std;
char ch[105];
int sw, n, m, ar[500][105], aj[500][105], i, j, linR, colR, linJ, colJ;
int in, sf, dl[8]={-1, -1, 0, 1, 1, 1, 0, -1}, dc[8]={0, 1, 1, 1, 0, -1, -1, -1};
int mini, lin, col;
struct deplas{
int l, c;
int d;
}c[36000], x, y;
int main()
{
fscanf(fin, "%d%d", &n, &m);
fscanf(fin, "%c", &ch);
for(i=1;i<=n;i++)
{
fgets(ch, 105, fin);
for(j=0;j<=m-1;j++)
{
if(ch[j]=='R')
{
ar[i][j+1]=aj[i][j+1]=1;
linR=i, colR=j+1;
}
else if(ch[j]=='J')
{
ar[i][j+1]=aj[i][j+1]=1;
linJ=i, colJ=j+1;
}
else if(ch[j]=='X')
ar[i][j+1]=aj[i][j+1]=-2;
else if(ch[j]==' ')
aj[i][j+1]=ar[i][j+1]=0;
}
}
c[1].l=linR;
c[1].c=colR;
c[1].d=1;
in=sf=1;
while(in<=sf)
{
x=c[in++];
for(i=0;i<=7;i++)
{
y.l=x.l+dl[i];
y.c=x.c+dc[i];
if(y.l>=1&&y.l<=n&&y.c>=1&&y.c<=m)
if(ar[y.l][y.c]==0)
{
y.d=x.d+1;
c[++sf]=y;
ar[y.l][y.c]=y.d;
}
}
}
c[1].l=linJ;
c[1].c=colJ;
c[1].d=1;
in=sf=1;
while(in<=sf)
{
x=c[in++];
for(i=0;i<=7;i++)
{
y.l=x.l+dl[i];
y.c=x.c+dc[i];
if(y.l>=1&&y.l<=n&&y.c>=1&&y.c<=m)
if(aj[y.l][y.c]==0)
{
y.d=x.d+1;
c[++sf]=y;
aj[y.l][y.c]=y.d;
}
}
}
aj[linJ][colJ]=-2;
ar[linJ][colJ]=-2;
aj[linR][colR]=-2;
ar[linR][colR]=-2;
mini=30300;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(ar[i][j]&&ar[i][j]==aj[i][j]&&ar[i][j]!=-2)
if(ar[i][j]<mini)
{
mini=ar[i][j];
lin=i;
col=j;
}
fprintf(fout, "%d %d %d", mini, lin, col);
return 0;
}