#include<stdio.h>
const char in[]="rj.in";
const char out[]="rj.out";
const int N=101;
const int linie[]={0, 1, 0, -1, -1, 1, -1, 1};
const int coloana[]={1, 0, -1, 0, -1, 1, 1,-1};
int r[N][N], J[N][N], rx, ry, jx, jy, min=2<<14, minx, miny, n, m;
struct xy{
int x, y;
};
xy v[N*N];
void lee(int x, int y, int d[N][N])
{int w;
for(w=0;w<8;++w)
if(x+linie[w]>0 && x+linie[w]<n && y+coloana[w]>0 && y+coloana[w]<m && d[x+linie[w]][y+coloana[w]]==0)
{
d[x+linie[w]][y+coloana[w]]=d[x][y]+1;
v[++v[0].x].x=x+linie[w];
v[v[0].x].y=y+coloana[w];
}
}
int main()
{
freopen(in,"r",stdin);
freopen(out,"w",stdout);
int i, j;
char x;
scanf("%d %d", &n, &m);
for(i=1;i<=n;++i)
for(j=1;j<=m;++j)
{scanf("%c", &x);
if(x=='\n')scanf("%c",&x);
if(x=='X')r[i][j]=J[i][j]=-1;
else if (x=='R')rx=i, ry=j;
else if(x=='J')jx=i, jy=j;
else continue;
}
v[0].x=1;v[1].x=rx;v[1].y=ry;r[v[1].x][v[1].y]=1;
for(i=1;i<=v[0].x;++i)
lee(v[i].x, v[i].y, r);
v[0].x=1;v[1].x=jx;v[1].y=jy;J[v[1].x][v[1].y]=1;
for(i=1;i<=v[0].x;++i)
lee(v[i].x, v[i].y, J);
for(j=1;j<=m;++j)
for(i=1;i<=n;++i)
if(r[i][j]==J[i][j] && r[i][j]>0 && r[i][j]<min)min=r[i][j], minx=i, miny=j;
printf("%d %d %d\n",min, minx, miny);
}