#include<cstdio>
#include<iostream>
#include<fstream>
#include<cstring>
using namespace std;
int dl[]={0,-1,-1,0,1,1,1,0,-1}, dc[]={0,0,1,1,1,0,-1,-1,-1};
int main()
{
FILE *out;
int N,M,i,j,l1,c1,l2,c2,p,u,ok,tmin=100000,d;
struct punct {int l,c;}v[500];
char m[101][101],*q;
ifstream in("rj.in");
out=fopen("rj.out","w");
in>>N>>M;
in.getline(m[0],10);
for(i=1;i<=N;i++)
{
in.getline(m[i]+1,100);
m[i][0]=m[i][M+1]='X';
q=strchr(m[i],'R');
if(q)
{
l1=i;
c1=q-m[i];
}
q=strchr(m[i],'J');
if(q)
{
l2=i;
c2=q-m[i];
}
}
//incepe lee
for(i=0;i<=M+1;i++)
m[0][i]=m[N+1][i]='X';
int lc,cc,lv,cv;
p=u=1;
v[1].l=l1; v[1].c=c1; ok=0; m[l1][c1]=1;
while(p<=u || ok==0)
{
lc=v[p].l;
cc=v[p].c;
if(lc==l2 && cc==c2)
{
ok=1;
tmin=(m[lc][cc]+1)/2;
}
else
{
for(d=1;d<=8;d++)
{
lv=lc+dl[d];
cv=cc+dc[d];
if(m[lv][cv]!='X')
if(m[lc][cc]+1<m[lv][cv] || m[lv][cv]==' ')
{u++;
m[lv][cv]=m[lc][cc]+1;
v[u].l=lv;
v[u].c=cv;}
}
}
p++;
}
int lmin=100, cmin=100;
for(i=1;i<=N;i++)
for(j=1;j<=M;j++)
if(m[i][j]==tmin)
{
if(i<lmin) {lmin=i; cmin=j;}
else
if(i==lmin && j<cmin) cmin=j;
}
fprintf(out,"%i %i %i\n",tmin,lmin,cmin);
}