#include <bits/stdc++.h>
using namespace std;
ifstream fin("rj.in");
ofstream fout("rj.out");
int n,m;
int rom[105][105],jul[105][105];
char mat[105][105];
void init(int &romi,int &romj,int &juli,int &julj)
{
int i,j,ch;
string s;
fin>>n>>m;
fin.get();
for(i=1;i<=n;++i)
{
getline(fin,s);
for(j=1;j<=m;++j)
{
mat[i][j]=s[j-1];
}
}
for(i=0;i<=n+1;++i)
{
for(j=0;j<=m+1;++j)
{
rom[i][j]=jul[i][j]=-1;
}
}
for(i=1;i<=n;++i)
{
for(j=1;j<=m;++j)
{
if(mat[i][j]=='R')
{
romi=i;
romj=j;
rom[i][j]=jul[i][j]=0;
}
else if(mat[i][j]=='J')
{
juli=i;
julj=j;
rom[i][j]=jul[i][j]=0;
}
else if(mat[i][j]=='X')
;
else if(mat[i][j]==' ')
rom[i][j]=jul[i][j]=0;
}
}
}
int ox[]={1,1,1,0,-1,-1,-1,0};
int oy[]={-1,0,1,1,1,0,-1,-1};
void Lee(int t[][105],int si,int sj)
{
int i,j,newi,newj,k;
queue<pair<int,int>> qu;
qu.push({si,sj});
t[si][sj]=1;
while(qu.empty()==false)
{
i=qu.front().first;
j=qu.front().second;
qu.pop();
for(k=0;k<8;++k)
{
newi=i+ox[k];
newj=j+oy[k];
if(t[newi][newj]==0)
{
qu.push({newi,newj});
t[newi][newj]=t[i][j]+1;
}
}
}
}
int main()
{
int romi,romj,juli,julj,minim=2e9,pozi=2e9,pozj=2e9,i,j;
init(romi,romj,juli,julj);
Lee(rom,romi,romj);
Lee(jul,juli,julj);
for(i=1;i<=n;++i)
{
for(j=1;j<=m;++j)
{
if(rom[i][j]==jul[i][j] && rom[i][j]>0)
{
if(rom[i][j]<minim || (rom[i][j]==minim && i<pozi))
{
//cout<<i<<' '<<j<<'\n';
minim=rom[i][j];
pozi=i;
pozj=j;
}
}
}
}
fout<<minim<<' '<<pozi<<' '<<pozj;
return 0;
}