#include<stdio.h>
int n,m;
struct nod
{
int l,c;
};
void bfs(int sl,int sc, int v[105][105])
{
int dl[]={-1,-1,0,1,1,1,0,-1};
int dc[]={0,1,1,1,0,-1,-1,-1};
int p=0,i,u=0;
nod coada[10005],x,y;
coada[u].l=sl;
coada[u++].c=sc;
x=coada[p];
while(p<=u)
{
for(i=0;i<8;++i)
{
y.l=x.l+dl[i];
y.c=x.c+dc[i];
if(y.l>=1&&y.l<=n&&y.c>=1&&y.c<=m&&v[y.l][y.c]==0)
{
{
coada[u++]=y;
v[y.l][y.c]=v[x.l][x.c]+1;
}
}
}
x=coada[++p];
}
}
int main()
{
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
int a[105][105]={0},b[105][105]={0},i,j,xf,yf,min=10005;
char s[105];
nod sr,sj;
scanf("%d%d\n",&n,&m);
for(i=1;i<=n;++i)
{
//scanf("%c",&c);
gets(s+1);
for(j=1;j<=m;++j)
{
//scanf("%c",&c);
if(s[j]=='X') a[i][j]=b[i][j]=-1;
if(s[j]=='R') {a[i][j]=b[i][j]=1;sr.l=i;sr.c=j;}
if(s[j]=='J') {a[i][j]=b[i][j]=1;sj.l=i;sj.c=j;}
if(s[j]==' ') a[i][j]=b[i][j]=0;
}
}
bfs(sr.l,sr.c,a);
bfs(sj.l,sj.c,b);
for(i=1;i<=n;++i)
for(j=1;j<=m;++j)
if(a[i][j]==b[i][j]&&a[i][j]<min&&a[i][j]>1)
{
min=a[i][j];
xf=i;
yf=j;
}
printf("%d %d %d",min,xf,yf);
return 0;
}