#include <cstdio>
#include <queue>
#include <cstring>
using namespace std;
int r[105][105], ju[105][105];
int n, m;
int di[8]= {-1, -1, 0, 1, 1, 1, 0, -1};
int dj[8]= {0, 1, 1, 1, 0, -1, -1, -1};
queue < pair<int,int> >Q;
void lee(int a[105][105], int si, int sj)
{
a[si][sj]=1;
Q.push(make_pair(si, sj));
while(!Q.empty())
{
int i=Q.front().first;
int j=Q.front().second;
Q.pop();
for(int v=0; v<8; v++)
{
int iv=i+di[v];
int jv=j+dj[v];
if(a[iv][jv]==0 && iv>0 && jv>0)
{
Q.push(make_pair(iv, jv));
a[iv][jv]=a[i][j]+1;
}
}
}
}
void bordare()
{
for(int i=0; i<=n+1; i++)
{
r[i][0]=-1;
r[i][m+1]=-1;
ju[i][0]=-1;
ju[i][m+1]=-1;
}
for(int j=0; j<=m+1; j++)
{
r[0][j]=-1;
r[n+1][j]=-1;
ju[0][j]=-1;
ju[n+1][j]=-1;
}
}
int main()
{
freopen("rj.in", "r", stdin);
freopen("rj.out", "w", stdout);
scanf("%d %d\n", &n, &m);
int sri, srj, sji, sjj;
for(int i=1; i<=n; i++)
{
//for(int j=1; j<=m; j++)
//{
char x[105];
fgets(x, 105, stdin);
int l=strlen(x);
for(int j=0; j<l-1; j++)
{
if(x[j]=='X')
{
ju[i][j+1]=-1;
r[i][j+1]=-1;
}
else if(x[j]=='R')
{
sri=i;
srj=j+1;
}
else if(x[j]=='J')
{
sji=i;
sjj=j+1;
}
}
//scanf("\n");
}
bordare();
lee(ju, sji, sjj);
lee(r, sri, srj);
/**for(int i=1; i<=n; i++)
{
for(int j=1; j<=m; j++)
{
if(r[i][j]==0)
printf(" ");
printf("%d ", r[i][j]);
}
printf("\n");
} **/
int vmin=200, mi, mj;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
if(ju[i][j]==r[i][j] && ju[i][j]!=-1 && ju[i][j]!=0)
{
if(vmin>r[i][j])
{
vmin=r[i][j];
mi=i;
mj=j;
}
}
printf("%d %d %d", vmin, mi, mj);
return 0;
}