#include <iostream>
#include <stdio.h>
using namespace std;
FILE *f,*g;
struct punct
{
int Lin,Col;
};
punct Coada[103*103];
punct Directie[8]={{1,0},{0,1},{-1,0},{0,-1},{1,1},{1,-1},{-1,1},{-1,-1}};
int a[103][103];
int b[103][103];
int main()
{
int n,m,i,j,xx,yy,x,y,q,e,r,w;
char t;
int startx,starty,starta,startb;
f=fopen("rj.in","r");
g=fopen("rj.out","w");
fscanf(f,"%d %d",&n,&m);
fscanf(f,"\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
fscanf(f,"%c",&t);
if(t=='X')
{
a[i][j]=-1;
b[i][j]=-1;
}
else
{
if(t=='R')
{
a[i][j]=1;
startx=i;
starty=j;
}
if(t=='J')
{
b[i][j]=1;
starta=i;
startb=j;
}
}
}
fscanf(f,"%c",&t);
}
Coada[0].Lin = startx;
Coada[0].Col = starty;
a[startx][starty] = 0;
int pi = 0, ps = 0;
int c=0;
while (ps <= pi)
{
int xx = Coada[ps].Lin;
int yy = Coada[ps].Col;
for (int i = 0; i < 8; i++)
{
int x = xx + Directie[i].Lin;
int y = yy + Directie[i].Col;
if (a[x][y] == 0 && x >= 1 && x <= n && y >= 1 && y <= m)
{
a[x][y] = a[xx][yy] + 1;
pi++;
Coada[pi].Lin = x;
Coada[pi].Col = y;
}
c++;
}
ps++;
}
Coada[0].Lin = starta;
Coada[0].Col = startb;
b[starta][startb] = 0;
pi=0;
ps=0;
c=0;
while (ps <= pi)
{
int xx = Coada[ps].Lin;
int yy = Coada[ps].Col;
for (int i = 0; i < 8; i++)
{
int x = xx + Directie[i].Lin;
int y = yy + Directie[i].Col;
if (b[x][y] == 0 && x >= 1 && x <= n && y >= 1 && y <= m)
{
b[x][y] = b[xx][yy] + 1;
pi++;
Coada[pi].Lin = x;
Coada[pi].Col = y;
}
c++;
}
ps++;
}
w=100000;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if((a[i][j]==b[i][j])&&(a[i][j]>0))
{
if(a[i][j]<w)
{
w=a[i][j];
q=i;
e=j;
}
}
}
}
/*for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
fprintf(g,"%d ",b[i][j]);
}
fprintf(g,"\n");
}*/
fprintf(g,"%d %d %d",w+1,q,e);
return 0;
}