#include<cstdio>
#include<cstring>
char a[105][105];
int ju[105][105],ro[105][105];
int lx[12]={1,1,1,0,0,-1,-1,-1};
int ly[12]={1,0,-1,1,-1,1,0,-1};
int l;
struct sp
{
int x,y;
}v[1000005];
void dfs(int x,int y)
{
int st,dr,i;
sp tm,tn;
tm.x=x;tm.y=y;
st=dr=1;v[1]=tm;
while(st<=dr)
{
tm=v[st];
for(i=0;i<=7;i++)
if(ju[tm.x+lx[i]][tm.y+ly[i]]==0 && a[tm.x+lx[i]][tm.y+ly[i]]==1)
{
ju[tm.x+lx[i]][tm.y+ly[i]]=ju[tm.x][tm.y]+1;
tn.x=tm.x+lx[i];tn.y=tm.y+ly[i];
dr++;
v[dr]=tn;
}
st++;
}
}
int main()
{
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
int n,m,i,j,xr,yr,xj,yj,tm,xm,ym,l;
tm=30000000;
scanf("%d%d\n",&n,&m);
for(i=1;i<=n;i++)
{
gets(a[i]+1);
l=strlen(a[i]+1);
if(l<m)
for(j=l+1;j<=m;j++)
a[i][j]=' ';
for(j=1;j<=m;j++)
{
if(a[i][j]=='R')
{
xr=i;
yr=j;
}
if(a[i][j]=='J')
{
xj=i;
yj=j;
}
if(a[i][j]==' ')
a[i][j]=1;
else
a[i][j]=0;
}
}
dfs(xr,yr);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
ro[i][j]=ju[i][j];
ju[i][j]=0;
}
dfs(xj,yj);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(ro[i][j]==ju[i][j] && ro[i][j]>0)
{
if(ro[i][j]<tm || (ro[i][j]==tm && i<xm) || (ro[i][j]==tm && i==xm && j<ym))
{
tm=ro[i][j];
xm=i;
ym=j;
}
}
printf("%d %d %d\n",tm+1,xm,ym);
return 0;
}