#include<cstdio>
char s[103];
int min=9999999,xf,yf,r[101][101],ju[101][101],n,m,p,u,q[2][101],xr,yr,xj,yj,dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};
void push(int x, int y)
{
q[0][u]=x;
q[1][u]=y;
++u;
}
void pop()
{
++p;
}
bool empty()
{
return p>u;
}
int xfront()
{
return q[0][p];
}
int yfront()
{
return q[1][p];
}
void vecr(int x, int y)
{
for(int i=0;i<4;++i)
{
int xx=x+dx[i];
int yy=y+dy[i];
if(xx>=0&&xx<n&&yy>=0&&yy<m&&r[xx][yy]==0)
{
push(xx,yy);
r[xx][yy]=r[x][y]+1;
}
}
}
void vecju(int x, int y)
{
for(int i=0;i<4;++i)
{
int xx=x+dx[i];
int yy=y+dy[i];
if(xx>=0&&xx<n&&yy>=0&&yy<m&&ju[xx][yy]==0)
{
push(xx,yy);
ju[xx][yy]=ju[x][y]+1;
}
}
}
int main()
{
int i,j;
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
scanf("%d%d",&n,&m);
fgets(s,101,stdin);
for(i=0;i<n;++i)
{
fgets(s,101,stdin);
for(j=0;j<m;++j)
if(s[j]=='X')
{
r[i][j]=-1;
ju[i][j]=-1;
}
else if(s[j]=='R')
{
xr=i;
yr=j;
}
else if(s[j]=='J')
{
xj=i;
yj=j;
}
}
push(xr,yr);
r[xr][yr]=1;
while(!empty())
{
int x=xfront();
int y=yfront();
vecr(x,y);
pop();
}
p=0;
u=0;
push(xj,yj);
ju[xj][yj]=1;
while(!empty())
{
int x=xfront();
int y=yfront();
vecju(x,y);
pop();
}
for(i=0;i<n;++i)
for(j=0;j<m;++j)
if(r[i][j]>0&&r[i][j]==ju[i][j]&&min>r[i][j]-1)
{
min=r[i][j]-1;
xf=i+1;
yf=j+1;
}
printf("%d %d %d",xf,yf,min);
return 0;
}