#include <cstdio>
#include <cstdlib>
#include <string>
const int vx[8]={0,1,0,-1,1,1,-1,-1};
const int vy[8]={1,0,-1,0,1,-1,1,-1};
int m,n,rx,ry,jx,jy;
int lrom[101][101];
int ljul[101][101];
int ob[101][101];
void iofile(void)
{
int i,j;
int c;
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
scanf("%d%d",&m,&n);
c=getchar();
for (i=0;i<m;i++)
for (j=0;j<n;j++)
{
lrom[i][j]=-1;
ljul[i][j]=-1;
}
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
ob[i][j]=getchar();
if (ob[i][j]=='R')
{
rx=i;
ry=j;
} else
if (ob[i][j]=='J')
{
jx=i;
jy=j;
}
}
if (i<m-1)
{
c=getchar();
}
}
fclose(stdin);
}
void lee(int xi,int yi, int a[][101])
{
typedef struct
{
int x,y;
} coord;
coord c[10001];
int b[101][101];
int p,u,xx,yy,i,j;
memset(b,0,sizeof(b));
c[0].x=xi;
c[0].y=yi;
b[xi][yi]=1;
p=u=0;
a[xi][yi]=1;
while (p<=u)
{
for (i=0;i<8;i++)
{
xx=c[p].x+vx[i];
yy=c[p].y+vy[i];
if ((xx>=0)&&(xx<m)&&(yy>=0)&&(yy<n)&&(ob[xx][yy]!='X')&&(b[xx][yy]==0))
{
u++;
c[u].x=xx;
c[u].y=yy;
b[xx][yy]=1;
a[xx][yy]=a[c[p].x][c[p].y]+1;
}
}
p++;
}
}
void con_lee(void)
{
lee(rx,ry,lrom);
lee(jx,jy,ljul);
}
void prel(void)
{
int i,j,min,xmin,ymin;
min=-1;
xmin=0;
ymin=0;
for (i=0;i<m;i++)
for (j=0;j<n;j++)
{
if ((lrom[i][j]!=-1)&&(ljul[i][j]!=-1))
{
if (lrom[i][j]==ljul[i][j])
{
if ((min==-1)||(lrom[i][j]<min))
{
min=lrom[i][j];
xmin=i+1;
ymin=j+1;
}
}
}
}
printf("%d %d %d\n",min,xmin,ymin);
fclose(stdout);
}
int main(void)
{
iofile();
con_lee();
prel();
return 0;
}