#include <cstdio>
typedef struct {int l,c;} PUNCT;
PUNCT c[100],v;
int x0,y0,x1,y1,l1,c1,i,j,ok,k,n,m,p,u,t,dl[]={1,0,-1,0,1,1,-1,-1},dc[]={0,1,0,-1,1,-1,1,-1};
int a[100][100],b[100][100];
FILE *f,*g;
int main()
{f=fopen ("rj.in","r");
g=fopen ("rj.out","w");
fscanf (f,"%d %d",&n,&m);
fscanf (f,"%c",&k);
k=1;
for (i=1;i<=n;i++) {j=1;ok=0;
while (j<=m) {fscanf (f,"%c",&a[i][j]);
if (a[i][j]==10) {for (p=j;p<=m;p++) {a[i][p]=32;
j++;}
b[i][p]=a[i][p];
ok=1;}
else {
b[i][j]=a[i][j];
if ( a[i][j]=='R') {x0=i;
y0=j;
}
else if (a[i][j]=='J') {x1=i;
y1=j;
}
else if (a[i][j]!='X') k++;
j++; } }
if (ok==0) fscanf (f,"%c",&p);
}
a[0][0]=88;
ok=0;
for (i=1;i<=n+1;i++) { a[i][0]='X';
a[i][m+1]='X';
}
for (i=1;i<=m+1;i++) { a[0][i]='X';
a[n+1][i]='X';
}
p=1;
u=1;
c[1].l=x0;
c[1].c=y0;
a[x0][y0]=1;
while (p<=u && p<=k)
{
v=c[p];
for (i=0;i<=7;i++)
{
l1=v.l+dl[i];
c1=v.c+dc[i];
if (a[l1][c1]==32) {c[++u].l=l1;
c[u].c=c1;
a[l1][c1]=a[v.l][v.c]+1;
}
}
p++;
}
p=1;
u=1;
c[1].l=x1;
c[1].c=y1;
b[x1][y1]=1;
while (p<=u && p<=k && ok==0)
{
v=c[p];
i=0;
while (i<=7 && ok==0)
{
l1=v.l+dl[i];
c1=v.c+dc[i];
if (b[l1][c1]==32) {c[++u].l=l1;
c[u].c=c1;
b[l1][c1]=b[v.l][v.c]+1;
if (b[l1][c1]==a[l1][c1]) {t= (a[l1][c1]);
ok=1;
}
}
i++;}
p++;
}
fprintf (g,"%d %d %d",t,l1,c1);
return 0;
}