#include<stdio.h>
int linie[]={1,0,1,-1,-1,0,-1,1};
int coloana[] ={1,1,0,-1,0,-1,1,-1};
struct rj
{
int l,c;
};
rj v[10002];
int a[103][103],b[103][103],i,j,lj,cj,lr,cr,n,m,ic,sf,min,max,pl,pj,p,lin,col;
char c,cg;
int main()
{
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
scanf("%d%d%c",&n,&m,&cg);
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
scanf("%c",&c);
if(c=='X')
b[i][j]=a[i][j]=-1;
if(c==' ')
b[i][j]=a[i][j]=0;
if(c=='J')
{
lj=i;
cj=j;
a[i][j]=1;
}
if(c=='R')
{
lr=i;
cr=j;
b[i][j]=1;
}
}
scanf("%c",&cg);
}
for(i=0;i<=n+1;i++)
{
b[i][0]=a[i][0]=-1;
b[i][m+1]=a[i][m+1]=-1;
}
for(i=0;i<=m+1;i++)
{
b[0][i]=a[0][i]=-1;
b[n+1][i]=a[n+1][i]=-1;
}
ic=sf=1;
v[1].l=lj;
v[1].c=cj;
while(ic<=sf)
{
for(i=0;i<8;i++)
{
lin=v[ic].l+linie[i];
col=v[ic].c+coloana[i];
if(a[lin][col]==0)
{
sf++;
v[sf].l=lin;
v[sf].c=col;
a[lin][col]=a[v[ic].l][v[ic].c]+1;
}
}
ic++;
}
ic=sf=1;
v[1].l=lr;
v[1].c=cr;
while(ic<=sf)
{
for(i=0;i<8;i++)
{
lin=v[ic].l+linie[i];
col=v[ic].c+coloana[i];
if(b[lin][col]==0)
{
sf++;
v[sf].l=lin;
v[sf].c=col;
b[lin][col]=b[v[ic].l][v[ic].c]+1;
}
}
ic++;
}
p=100*100+100*100+1;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
if(a[i][j]>0&&b[i][j]>0&&a[i][j]==b[i][j]&&a[i][j]<p)
{
pl=i;
pj=j;
p=a[i][j];
}
}
printf("%d %d %d",p,pl,pj);
return 0;
}