#include<stdio.h>
FILE *in, *out;
int poz, start, v[105][105], gay[105][105], m, n, coada[10010][2];
int trece[8][2] = {{1, 0}, {1, 1}, {0, 1}, {1, -1}, {0, -1}, {-1, 0}, {-1, -1}, {-1, 1}};
void lee(int (*mat)[105][105], int x, int y)
{
int i;
//printf("%d %d\n", x, y);
for(i = 0; i < 8; i++) {
if((*mat)[x + trece[i][0]][y + trece[i][1]] == 0 || ((*mat)[x + trece[i][0]][y + trece[i][1]] > (*mat)[x][y] + 1 && ((*mat)[x + trece[i][0]][y + trece[i][1]] != -1))) {
(*mat)[x + trece[i][0]][y + trece[i][1]] = (*mat)[x][y] + 1;
coada[poz][0] = x + trece[i][0];
coada[poz][1] = y + trece[i][1];
poz++;
}
}
//printf("%d ", poz);
if(start > poz - 1) {
return;
} else {
start++;
lee(mat, coada[start - 1][0], coada[start - 1][1]);
}
}
int main ()
{
int i, j, rx, ry, jx, jy, mini, minj;
char c;
in = fopen("rj.in", "r");
out = fopen("rj.out", "w");
fscanf(in, "%d%d", &n, &m);
c = fgetc(in);
//printf("asdasd");
//write(2, "ole\n", 4);
for(i = 0; i <= n + 1; i++) {
v[i][0] = gay[i][0] = -1;
v[i][m + 1] = gay[i][m + 1] = -1;
}
for(j = 0; j <= m + 1; j++) {
v[0][j] = gay[0][j] = -1;
v[n + 1][j] = gay[n + 1][j] = -1;
}
//write(2, "ole\n", 4);
for(i = 1; i <= n; i++) {
for(j = 1; j <= m; j++) {
c = fgetc(in);
//printf("%c.", c);
switch(c) {
case ' ':
v[i][j] = 0;
break;
case 'R':
rx = i;
ry = j;
v[i][j] = 0;
break;
case 'J':
jx = i;
jy = j;
v[i][j] = 0;
break;
case 'X':
v[i][j] = -1;
break;
}
gay[i][j] = v[i][j];
}
//printf("\n");
fgetc(in);
}
/*
for(i = 1; i <= n; i++) {
for(j = 1; j <= m; j++) {
fprintf(stdout, "%2d ", v[i][j]);
}
fprintf(stdout, "\n");
}
*/
//write(2, "ole\n", 4);
poz = 0;
start = 0;
v[rx][ry] = 1;
lee(&v, rx, ry);
/*
for(i = 1; i <= n; i++) {
for(j = 1; j <= m; j++) {
fprintf(stdout, "%2d ", v[i][j]);
}
fprintf(stdout, "\n");
}
//*/
poz = 0;
start = 0;
gay[jx][jy] = 1;
lee(&gay, jx, jy);
/*
for(i = 1; i <= n; i++) {
for(j = 1; j <= m; j++) {
fprintf(stdout, "%2d ", gay[i][j]);
}
fprintf(stdout, "\n");
}
//*/
//write(2, "ole\n", 4);
mini = jx;
minj = jy;
//printf(" %d %d %d \n", mini, minj, v[mini][minj]);
for(i = 1; i <= n; i++) {
for(j = 1; j <= m; j++) {
if(v[i][j] == gay[i][j] && v[i][j] > 0) {
//printf("poponel %d %d....\n", i, j);
if(v[i][j] < v[mini][minj]) {
mini = i;
minj = j;
}
}
}
}
fprintf(out, "%d %d %d", v[mini][minj], mini, minj);
fclose(in);
fclose(out);
return 0;
}