#include <fstream>
#include <cstring>
using namespace std;
ifstream f("rj.in");
ofstream g("rj.out");
int n, m, rx, ry, jx, jy, i, j, minim, ii, jj;
int a[110][110], r[110][110], ju[110][110], d[2][11000], init[110][110];
char car, s[110];
int dx[] = { -1, -1, -1, 0, 1, 1, 1, 0 };
int dy[] = { -1, 0, 1, 1, 1, 0, -1, -1 };
void lee ( int xs, int ys, int mat[110][110] ){
int l=0, c=1, p=1, u=1;
for ( i=1; i <= n; i++ )
for ( j=1; j <= m; j++ )
a[i][j] = init[i][j];
d[l][p] = xs;
d[c][p] = ys;
a[xs][ys] = 1; mat[xs][ys] = 1;
while ( p <= u ){
int ic = d[l][p];
int jc = d[c][p];
for ( int crt = 0; crt < 8; crt++ ){
int iv = ic + dx[crt];
int jv = jc + dy[crt];
if ( !a[iv][jv] && iv && jv && iv <= n && jv <= m ){
d[l][++u] = iv;
d[c][u] = jv;
mat[iv][jv] = mat[ic][jc]+1;
a[iv][jv] = 1;
}
}
p++;
}
}
int main()
{
f>>n>>m; f.get();
for ( i=1; i <= n; i++ ){
f.getline(s,101);
for ( j=1; j <= m; j++ ){
car = s[j-1];
if ( car == 'X' ) init[i][j] = -1;
if ( car == 'R' ) rx = i, ry = j;
if ( car == 'J' ) jx = i, jy = j;
a[i][j] = init[i][j];
}
}
lee ( rx, ry, r );
lee ( jx, jy, ju );
minim = n*m;
for ( i=1; i <= n; i++ )
for ( j=1; j <= m; j++ )
if ( r[i][j] == ju[i][j] && r[i][j] ){
if ( r[i][j] < minim )
minim = r[i][j],
ii = i, jj = j;
}
g<<minim<<" "<<ii<<" "<<jj;
return 0;
}