#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("rj.in");
ofstream fout("rj.out");
int dx[8]={-1,-1,-1,0,1,1,1,0};
int dy[8]={-1,0,1,1,1,0,-1,-1};
int a[102][102],n,m;
int xr,yr,xj,yj;
void Citire()
{
int i,j;
char c;
fin>>n>>m;
fin.get();
for (i=1; i<=n; i++)
{
for (j=1; j<=m; j++)
{
fin.get(c);
if (c=='X') a[i][j]=0;
else
if (c==' ') a[i][j]=1;
else
if (c=='R')
{
xr=i;
yr=j;
a[i][j]=1;
}
else
if (c=='J')
{
xj=i;
yj=j;
a[i][j]=1;
}
}
fin.get();
}
}
void Lee(int xi, int yi, int xf, int yf, int v[102][102])
{
int l[10202],c[10202],pr,ul;
int xc,yc,xv,yv;
int i;
l[1]=xi;
c[1]=yi;
pr=ul=1;
v[xi][yi]=2;
while (pr<=ul)
{
xc=l[pr];
yc=c[pr];
pr++;
for (i=0; i<8; i++)
{
xv=xc+dx[i];
yv=yc+dy[i];
if (xv>=1 && xv<=n && yv>=1 && yv<=m)
if (v[xv][yv]==1)
if (xv==xf && yv==yf)
v[xf][yf]=v[xc][yc]+1;
else
{
ul++;
l[ul]=xv;
c[ul]=yv;
v[xv][yv]=v[xc][yc]+1;
}
}
}
}
void Intalnire(int romeo[102][102], int julieta[102][102])
{
int i,j,mn,lin,col;
for (i=1; i<=n; i++)
for (j=1; j<=m; j++)
{
romeo[i][j]=a[i][j];
julieta[i][j]=a[i][j];
}
Lee(xr,yr,xj,yj,romeo);
Lee(xj,yj,xr,yr,julieta);
mn=10203;
for (i=1; i<=n; i++)
for (j=1; j<=m; j++)
if (romeo[i][j]==julieta[i][j] && romeo[i][j]!=0 && romeo[i][j]!=1)
if (romeo[i][j]<mn)
{
mn=romeo[i][j];
lin=i;
col=j;
}
fout<<mn-1<<" "<<lin<<" "<<col;
}
int main()
{
int i,j,romeo[102][102],julieta[102][102];
Citire();
Intalnire(romeo,julieta);
fin.close();
fout.close();
return 0;
}