#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
char a[102][102],s[102];
int l[10]={-1,-1,0,1,1,1,0,-1},c[10]={0,1,1,1,0,-1,-1,-1},k=1,nr[102][102],nr2[102][102],n,m;
/*bool verif()
{
int i,j;
for(i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
{
if (nr[i][j]==nr2[i][j] && nr[i][j]!=0 && nr[i][j]!=-1)
return 1;
else
return 0;
}
}
}*/
void rsprej(int x1,int y1)
{
int i,j,inou,jnou,min=103000;
for (i=0;i<=7;i++)
{
inou=x1+l[i];
jnou=y1+c[i];
if (nr[inou][jnou]==0)
{
nr[inou][jnou]=k+1;
}
}
}
void jsprer(int x2,int y2)
{
int i,j,inou,jnou;
for (i=0;i<=7;i++)
{
inou=x2+l[i];
jnou=y2+c[i];
if (nr2[inou][jnou]==0)
{
nr2[inou][jnou]=k+1;
}
}
}
int main()
{
ifstream f("rj.in");
ofstream g("rj.out");
int ir,ij,jr,jj,i,j,max,min,iff,r,jf;
f>>n>>m;
f.get();
for (i=1;i<=n;i++)
{
f.get(s,102);
s[m]=NULL;
for (j=0;j<m;j++)
{
if (s[j]==' ')
s[j]='0';
a[i][j+1]=s[j];
if (a[i][j+1]=='R')
{
ir=i;
jr=j+1;
}
else
{
if (a[i][j+1]=='J')
{
ij=i;
jj=j+1;
}
}
}
f.get();
}
for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
{
if (a[i][j]=='X')
nr[i][j]=-1;
if (a[i][j]=='0')
nr[i][j]=0;
if (a[i][j]=='R')
nr[i][j]=0;
if (a[i][j]=='J')
nr[i][j]=0;
nr2[i][j]=nr[i][j];
}
}
nr[ir][jr]=1;
nr2[ij][jj]=1;
max=n;
if (m>n)
max=m;
while (k<=max)
{
for (i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if (nr[i][j]==k)
rsprej(i,j);
if (nr2[i][j]==k)
jsprer(i,j);
}
}
k++;
}
for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
{
if (nr[i][j]==nr2[i][j] && nr[i][j]!=0 && nr[i][j]!=-1)
{
cout<<i<<" "<<j<<endl;
if (nr[i][j]<min)
{
min=nr[i][j];
iff=i;
jf=j;
}
}
}
}
g<<min<<" "<<iff<<" "<<jf;
//-----------------------------------------
/*for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
g<<nr[i][j]<<" ";
g<<endl;
}
g<<endl<<endl;
for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
g<<nr2[i][j]<<" ";
g<<endl;
}*/
/*g<<ir<<" "<<jr;
g<<endl;
g<<ij<<" "<<jj;*/
/*for (i=1;i<=n;i++)
{
for (j=1;j<=m;j++)
g<<a[i][j];
g<<endl;
}*/
//-----------------------------------------
}