#include <iostream>
#include <fstream>
using namespace std;
ifstream f("rj.in");
ofstream g("rj.out");
const int dx[]={0,1,1,1,0,-1,-1,-1};
const int dy[]={1,1,0,-1,-1,-1,0,1};
int rx,ry,jx,jy;
int n,m;
int a[100][100],b[100][100];
void afisare(int a[100][100])
{
int i,j;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
g<<a[i][j]<<" ";
g<<endl;
}
}
void citire()
{
char s[101];
int i,j;
f>>n>>m;
f.get();
for(i=1;i<=n;i++)
{
f.getline(s,101,'\n');
for(j=0;j<m;j++)
{
a[i][j+1]=0;
b[i][j+1]=0;
if(s[j]=='X')
a[i][j+1]=b[i][j+1]=1;
if(s[j]=='R')
{
rx=i;
ry=j+1;
}
if(s[j]=='J')
{
jx=i;
jy=j+1;
}
}
//f.get();
}
//afisare(a);
//g<<endl;
//afisare(b);
//g<<endl;
}
int bune(int i,int j)
{
return (i>=1 and i<=n and j>=1 and j<=m);
}
void lee(int n,int m,int a[100][100],int i,int j)
{
int cx[10000],cy[10000],k,ii,jj,pi,ps;
cx[0]=i;
cy[0]=j;
a[i][j]=1;
pi=0;
ps=0;
while(pi<=ps)
{
for(k=0;k<8;k++)
{
ii=cx[pi]+dx[k];
jj=cy[pi]+dy[k];
if(bune(ii,jj)==1)
if(a[ii][jj]==0)
{
ps=ps+1;
cx[ps]=ii;
cy[ps]=jj;
a[ii][jj]=a[cx[pi]][cy[pi]]+1;
}
}
pi=pi+1;
}
}
int main()
{
citire();
lee(n,m,a,rx,ry);
lee(n,m,b,jx,jy);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(a[i][j]==b[i][j] and a[i][j]!=0 and a[i][j]!=1)
{
g<<a[i][j]<<" "<<i<<" "<<j;
j=m+1;
i=n+1;
}
//afisare(a);
//g<<endl;
//afisare(b);
return 0;
}