#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};
void read(int &n, int &m, int &ij ,int &jj, int &ir, int &jr, int a[][101])
{
ifstream f("rj.in");
f>>n>>m;
int i,j;
char s[101];
f.get();
for(i=0;i<n;i++)
{
f.getline(s,101);
for(j=0;j<m;j++)
{
if(s[j]==' ')
a[i][j]=0;
else if(s[j]=='X')
a[i][j]=1;
else if(s[j]=='J')
{
ij=i;
jj=j;
}
else if(s[j]=='R')
{
ir=i;
jr=j;
}
}
}
f.close();
}
int bune(int i, int j, int n, int m)
{
return(i>=0 && i<n) && (j>=0 && j<m);
}
void lee(int n, int m, int a[][101], int ij, int jj)
{
int cx[101],cy[101],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 n,i,j,m,ij,jj,ir,jr,a[101][101],b[101][101];
read(n,m,ij,jj,ir,jr,a);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
b[i][j]=a[i][j];
lee(n,m,a,ij,jj);
lee(n,m,b,ir,jr);
int mini=10000,x,y;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(a[i][j]==b[i][j] && a[i][j] < mini && a[i][j] > 1)
{
mini=a[i][j];
x=i;
y=j;
}
ofstream o("rj.out");
o << mini << " " << x+1 << " " << y+1;
o.close();
return 0;
}