#include <fstream>
#include <queue>
using namespace std;
queue < pair <int,int> > q;
int rom[101][101],jul[101][101];
bool v[101][101];
bool da[101][101],da1[101][101];
pair <int,int> p;
int lin[8] = {-1, 0, 1, 0, 1, 1, -1, -1};
int col[8] = {0, 1, 0, -1, 1, -1, 1, -1};
int n,m;
ifstream in ("rj.in");
ofstream out ("rj.out");
void lee (int i,int j,bool ok)
{
q.push({i,j});
if (ok==0)
rom[i][j]=1;
else
jul[i][j]=1;
int ii,jj,i2,j2;
while (!q.empty())
{
p=q.front();
q.pop();
ii=p.first;
jj=p.second;
for (int d=0; d<8; d++)
{
i2=ii+lin[d];
j2=jj+col[d];
if (j2>0&&i2>0&&i2<=n&&j2<=m&&v[i2][j2]==0)
{
if (ok==0&&da[i2][j2]==0)
da[i2][j2]=1,rom[i2][j2]=rom[ii][jj]+1,q.push({i2,j2});
else if (ok==1&&da1[i2][j2]==0)
da1[i2][j2]=1,jul[i2][j2]=jul[ii][jj]+1,q.push({i2,j2});
}
}
}
}
int main()
{
int i,j,ri,rj,ji,jj1,cnt=0;
char c;
in>>n>>m;
in.get(c);
for (i=1; i<=n; i++)
{
cnt=0;
while (in.get(c)&&c!='\n')
{
cnt++;
if (c=='X')
v[i][cnt]=1;
else
v[i][cnt]=0;
if (c=='R')
ri=i,rj=cnt;
else if (c=='J')
ji=i,jj1=cnt;
}
if (cnt<m)
for (int k=cnt+1; k<=m; k++)
v[i][k]=0;
}
lee(ri,rj,0);
lee(ji,jj1,1);
int min1=1000000000,lfin=0,cfin=1000000000;
for (i=1; i<=n; i++)
for (j=1; j<=m; j++)
{
if (v[i][j]==0&&rom[i][j]==jul[i][j]&&rom[i][j]!=0&&jul[i][j]!=0)
{
if (rom[i][j]<min1)
min1=rom[i][j],lfin=i,cfin=j;
else if (rom[i][j]==min1&&j<cfin)
lfin=i,cfin=j;
}
}
out<<min1<<" "<<lfin<<" "<<cfin;
return 0;
}