#include <cstdio>
#include <fstream>
using namespace std;
ofstream fout("rj.out");
int a[101][101],b[101][101];
int dx[]={-1,-1,-1,0,1,1,1,0};
int dy[]={-1,0,1,1,1,0,-1,-1};
struct {int x,y;}Cr[10001];
struct {int x,y;}Cj[10001];
int interior(int x,int y,int n,int m)
{
if(x>=1&&y<=m&&y>=1&&x<=n)return 1;
else return 0;
}
int main()
{
FILE *rj;
rj=fopen("rj.in","r");
char c;
int n,m,i,j,j1,j2,r1,r2,p,u,x,y,v1,v2,ok;
fscanf(rj,"%d""%d",&n,&m);
for(i=1;i<=n;i++)
{
fscanf(rj,"%c",&c);
for(j=1;j<=m;j++)
{
fscanf(rj,"%c",&c);
if(c=='J'){j1=i;j2=j;}
if(c=='R'){r1=i;r2=j;}
if(c=='X'){a[i][j]=-1;b[i][j]=-1;}
}
}
p=u=1;
Cr[u].x=r1;
Cr[u].y=r2;
a[r1][r2]=1;
while(p<=u)
{
x=Cr[p].x;
y=Cr[p++].y;
for(i=0;i<=7;i++)
{
v1=x+dx[i];
v2=y+dy[i];
if(interior(v1,v2,n,m)&&a[v1][v2]==0)
{
Cr[++u].x=v1;
Cr[u].y=v2;
a[v1][v2]=a[x][y]+1;
}
}
}
p=u=1;
Cj[u].x=j1;
Cj[u].y=j2;
b[j1][j2]=1;
while(p<=u)
{
x=Cj[p].x;
y=Cj[p++].y;
for(i=0;i<=7;i++)
{
v1=x+dx[i];
v2=y+dy[i];
if(interior(v1,v2,n,m)&&b[v1][v2]==0)
{
Cj[++u].x=v1;
Cj[u].y=v2;
b[v1][v2]=b[x][y]+1;
}
}
}
ok=0;
for(i=1;i<=n&&ok==0;i++)
for(j=1;j<=m&&ok==0;j++)
if(a[i][j]==b[i][j]&&a[i][j]>=1)
{
ok=1;
fout<<i<<' '<<j<<' ';
fout<<a[i][j];
}
return 0;
}