#include <iostream>
#include <string>
#include <fstream>
using namespace std;
const int dx[]={-1,-1,0,1,1,1,0,-1};
const int dy[]={0,1,1,1,0,-1,-1,-1};
int a[105][105],b[105][105];
int n,m;
char s[105][105];
void read(int &ij ,int &jj, int &ir, int &jr)
{
ifstream f("rj.in");
f>>n>>m;
int i,j;
f.get();
for(i=1;i<=n;i++)
{
f.getline(s[i]+1,105);
for(j=1;j<=m;j++)
{
if(s[i][j]==' ')
a[i][j]=0;
else if(s[i][j]=='X')
a[i][j]=1;
else if(s[i][j]=='J')
{
ij=i;
jj=j;
}
else if(s[i][j]=='R')
{
ir=i;
jr=j;
}
}
}
f.close();
}
int bune(int i, int j, int n, int m)
{
return(i>=1 && i<=n) && (j>=1 && j<=m);
}
void lee(int a[][105],int ij, int jj)
{
int cx[105*105],cy[105*105],i,j,pi,ps,k;
pi=0;ps=0;cx[0]=ij;cy[0]=jj;
a[ij][jj]=1;
while(pi<=ps)
{
for(k=0;k<8;k++)
{
i=cx[pi]+dx[k];
j=cy[pi]+dy[k];
if(bune(i,j,n,m))
{
if(a[i][j]==0)
{
a[i][j]=a[cx[pi]][cy[pi]]+1;
ps++;
cx[ps]=i;
cy[ps]=j;
}
}
}
pi++;
}
}
int main()
{
int i,j,ij,jj,ir,jr;
read(ij,jj,ir,jr);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
b[i][j]=a[i][j];
lee(a,ij,jj);
lee(b,ir,jr);
int mini=100000,x=0,y=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(a[i][j] > 1 && b[i][j] > 1)
if(a[i][j]==b[i][j])
{
if(a[i][j]<mini)
{
mini=a[i][j];
x=i;
y=j;
}
else if(a[i][j]==mini)
if(i<x)
{
mini=a[i][j];
x=i;
y=j;
}
}
}
}
ofstream o("rj.out");
o << mini << " " << x << " " << y;
o.close();
return 0;
}