#include <fstream>
using namespace std;
int n,m,xr,yr,xj,yj;
const int dx[]={-1,-1,0,1,1,1,0,-1};
const int dy[]={0,1,1,1,0,-1,-1,-1};
ofstream out("rj.out");
ifstream in("rj.in");
void citire( int mr[][100], int mj[][100])
{
char sir[101];
in>>n>>m;
int i,j;
in.getline(sir,101,'\n');
for(i=0;i<n;i++)
{
in.getline(sir,101,'\n');
for(j=0;j<m;j++)
{
if(sir[j]=='R')
{
xr=i;
yr=j;
}
if(sir[j]=='J')
{
xj=i;
yj=j;
}
if (sir[j]=='X')
{
mr[i][j]=1;
mj[i][j]=1;
}
else
{
mr[i][j]=0;
mj[i][j]=0;
}
}
}
in.close();
}
int bune(int ii, int jj)
{
return(ii>=0&&ii<n&&jj>=0&&jj<m);
}
void afisare(int mat[][100])
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
out<<mat[i][j]<<" ";
}
out<<"\n";
}
}
void leec(int xi,int yi,int mat[][100])
{
int ii,jj,pi,ps,x[10000],y[10000],k;
x[0]=xi;
y[0]=yi;
pi=0;
ps=0;
while(pi<=ps)
{
for(k=0;k<8;k++)
{
ii=x[pi]+dx[k];
jj=y[pi]+dy[k];
if(bune(ii,jj))
{
if(mat[ii][jj]==0)
{
mat[ii][jj]=mat[x[pi]][y[pi]]+1;
ps=ps+1;
x[ps]=ii;
y[ps]=jj;
}
}
}
pi=pi+1;
}
}
int main()
{
int mr[100][100],mj[100][100],minn,xf,yf,i,j;
citire(mr,mj);
mr[xr][yr]=1;
leec(xr,yr,mr);
//afisare(mr);
// out<<"\n";
mj[xj][yj]=1;
leec(xj,yj,mj);
//afisare(mj);
minn=n*m;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(mr[i][j]==mj[i][j] && mr[i][j]<minn && mr[i][j]>1)
{
minn=mr[i][j];
xf=i;
yf=j;
}
}
}
out<<minn<<" "<<xf+1<<" "<<yf+1<<" ";
out.close();
return 0;
}