#include<stdio.h>
typedef struct {
int x,y,val;
}punct;
FILE *f,*g;
punct R,J,c[100],poz,sol[100];
int n,m,i,j,a[101][101],nr;
char linie[110];
void lee()
{
int dx[]={-1,-1,0,1,1,1,0,-1};
int dy[]={0,1,1,1,0,-1,-1,-1};
int start=0,finish=2;
c[1]=R;
c[2]=J;
while(start<=finish)
{
start++;
poz=c[start];
for(i=0;i<8;i++)
{
if(a[poz.x+dx[i]][poz.y+dy[i]]==a[poz.x][poz.y]+1)
{
nr++;
sol[nr].x=poz.x+dx[i];
sol[nr].y=poz.y+dy[i];
sol[nr].val=a[poz.x][poz.y];
}
if(a[poz.x+dx[i]][poz.y+dy[i]]==1)
{
a[poz.x+dx[i]][poz.y+dy[i]]=a[poz.x][poz.y]+1;
finish++;
c[finish].x=poz.x+dx[i];
c[finish].y=poz.y+dy[i];
}
}
}
}
int main()
{
f=fopen("rj.in","rt");
g=fopen("rj.out","wt");
fscanf(f,"%d",&n);
fscanf(f,"%d",&m);
fgets(linie,200,f);
fflush(stdin);
for(i=1;i<=n;i++)
{ fgets(linie,200,f);
for(j=0;j<m;j++)
if(linie[j]=='R')
{
R.x=i;
R.y=j+1;
a[i][j+1]=2;
}
else
if(linie[j]=='J')
{
J.x=i;
J.y=j+1;
a[i][j+1]=2;
}
else
if(linie[j]==' ')
a[i][j+1]=1;
}
lee();
for(i=1;i<nr;i++)
for(j=nr;j>i;j--)
if(sol[i].val>sol[j].val)
{
poz=sol[i];
sol[i]=sol[j];
sol[j]=poz;
}
else
if(sol[i].val=sol[j].val)
{
if(sol[i].x>sol[j].x)
{
poz=sol[i];
sol[i]=sol[j];
sol[j]=poz;
}
else
if(sol[i].x==sol[j].x)
if(sol[i].y>sol[j].y)
{
poz=sol[i];
sol[i]=sol[j];
sol[j]=poz;
}
}
fprintf(g,"%d %d %d",sol[1].val,sol[1].x,sol[1].y);
return 0;}