#include<fstream.h>
#define nmax 105
int a[nmax][nmax],b[nmax][nmax],n,m,tmin,xmin,ymin,rx,ry,jx,jy,x[10002],y[10002];
int dl[8]={0,0,1,-1,1,1,-1,-1};
int dc[8]={1,-1,0,0,1,-1,1,-1};
void cit()
{
ifstream fin("rj.in");
char c;
fin>>n>>m;
fin.get();
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
c=fin.get();
if(c=='R')
{
rx=i; ry=j;
}
else
if(c=='J')
{
jx=i; jy=j;
}
else
if(c=='X')
a[i][j]=-1;
}
fin.get();
}
fin.close();
}
void bordare()
{
int i;
for(i=0;i<=n+1;i++)
a[i][0]=a[i][m+1]=-1;
for(i=1;i<=m;i++)
a[0][i]=a[n+1][i]=-1;
}
void lee(int a[nmax][nmax],int inci,int incj)
{
int p,u,ii,jj,i,j,dd,k;
p=u=1; x[p]=inci; y[p]=incj; a[inci][incj]=1;
while(p<=u)
{
i=x[p]; j=y[p]; dd=a[i][j]+1;
for(k=0;k<8;k++)
{
ii=i+dl[k]; jj=j+dc[k];
if(a[ii][jj]==0)
{
u++; x[u]=ii; y[u]=jj; a[ii][jj]=dd;
}
}
p++;
}
}
void afis()
{
ofstream fout("rj.out");
fout<<tmin<<" "<<xmin<<" "<<ymin<<'\n';
fout.close();
}
int main()
{
int i,j;
cit();
bordare();
for(i=0;i<=n+1;i++)
for(j=0;j<=m+1;j++)
b[i][j]=a[i][j];
lee(a,rx,ry);
lee(b,jx,jy);
tmin=10002;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(a[i][j]==b[i][j]&&a[i][j]<tmin&&a[i][j]>0)
{
tmin=a[i][j];
xmin=i;
ymin=j;
}
afis();
return 0;
}