#include <fstream>
#define DimMaxCoada 10201
using namespace std;
ifstream f("rj.in");
ofstream g("rj.out");
int n,m,tmin,a[101][101],xr,yr,xj,yj,i,j,b[101][101],InC,SfC,mi=2000000000,mil,mic,k;
int dx[]={-1,-1,0,1,1,1,0,-1};
int dy[]={0,1,1,1,0,-1,-1,-1};
char s[149];
struct Romjul
{
int l,c,d;
};
Romjul C[DimMaxCoada],x,y;
void citire()
{
f>>n>>m;
f.getline(s,149);
for (i=1;i<=n;i++)
{
f.getline(s,149);
for (j=0;j<m;j++)
{
if (s[j]=='R')
{
xr=i;
yr=j+1;
a[i][j+1]=-2;
b[i][j+1]=-2;
}
else if (s[j]=='J')
{
xj=i;
yj=j+1;
a[i][j+1]=-2;
b[i][j+1]=-2;
}
else if (s[j]=='X') {a[i][j+1]=-1;b[i][j+1]=-1;}
else {a[i][j+1]=-2;b[i][j+1]=-2;}
}
}
}
void afisare()
{
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
if(a[i][j]==b[i][j]&&a[i][j]>0&&b[i][j]>0)
if(mi>a[i][j])
{
mi=a[i][j];
mil=i;
mic=j;
}
}
g<<mi<<' '<<mil<<' '<<mic;
}
void Romica(int a[101][101],int x1,int y1)
{
x.l=x1;x.c=y1;x.d=1; a[x1][y1]=0;C[InC]=x;
//algoritmul lui LEE
while (InC<=SfC) //parcurg COADA
{
x=C[InC++]; //EXTRAG UN ELEMENT DIN COADA
//NE DEPLASAM IN CELE 4 DIRECTII
for (k=0;k<8;k++)
{ y.l=x.l+dx[k];
y.c=x.c+dy[k];
if (a[y.l][y.c]==-2) //y- POZITIE LIBERA
{
y.d=x.d+1; a[y.l][y.c]=y.d;
C[++SfC]=y; //DUC y IN COADA
}
}
}
}
int main()
{
citire();
Romica(a,xr,yr);
InC=SfC=0;
Romica (b,xj,yj);
afisare();
return 0;
}