#include<fstream>
#include<string>
using namespace std;
const int dx[]={0,-1,-1,-1,0,1,1,1,0};
const int dy[]={0,-1,0,1,1,1,0,-1,-1};
int a[101][101],b[101][101];
int n,m,iJ,jJ,iR,jR,minn=3200,im,jm;
void citire()
{
char x;
int i,j;
ifstream in("rj.in");
in>>n>>m;
in.get();
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
in.get(x);
if(x=='J')
{
iJ=i;
jJ=j;
}
else if(x=='R')
{
iR=i;
jR=j;
}
else if(x=='X')
a[i][j]=b[i][j]=-1;
}
in.get();
}
for(i=0;i<=n+1;i++)
a[i][0]=a[i][m+1]=b[i][0]=b[i][m+1]=-1;
for(j=1;j<=m;j++)
a[0][j]=a[n+1][j]=b[0][j]=b[n+1][j]=-1;
in.close();
}
void lee1(int i,int j,int pas)
{
int k,x,y;
if(a[i][j]!=-1)
{
if(a[i][j]>=pas||a[i][j]==0)
{
a[i][j]=pas;
for(k=1;k<=8;k++)
{
x=i+dx[k];
y=j+dy[k];
lee1(x,y,pas+1);
}
}
}
}
void lee2(int i,int j,int pas)
{
int k,x,y;
if(b[i][j]!=-1)
{
if(b[i][j]>=pas||b[i][j]==0)
{
b[i][j]=pas;
if(a[i][j]==pas&&pas<minn)
{
minn=pas;
im=i;
jm=j;
}
for(k=1;k<=8;k++)
{
x=i+dx[k];
y=j+dy[k];
lee2(x,y,pas+1);
}
}
}
}
int main()
{
ofstream out("rj.out");
citire();
lee1(iJ,jJ,1);
lee2(iR,jR,1);
out<<minn<<" "<<im<<" "<<jm<<'\n';
out.close();
return 0;
}