#include <cstdio>
#include <cmath>
#define nmax 102
using namespace std;
int a[nmax][nmax], b[nmax][nmax], dl[]={-1,-1,0,1,1,1,0,-1}, dc[]={0,1,1,1,0,-1,-1,-1};
int n, m, k, x, y, min=9000, xr, yr, xj, yj;
char c;
void citire()
{
freopen("rj.in", "r", stdin);
scanf("%d%d", &n, &m);
int i, j;
for(i=1; i<=n; i++) {scanf("%c", &c);
for(j=1; j<=m; j++){
scanf("%c", &c);
if(c=='X') a[i][j]=-1;
if(c=='R') {xr=i; yr=j;}
if(c=='J') {xj=i; yj=j;}
}
}
fclose(stdin);
for(i=0; i<=n+1; i++)a[i][0]=a[i][m+1]=-1;
for(i=0; i<=m+1; i++)a[0][i]=a[n+1][i]=-1;
for(i=0; i<=n+1; i++) for(j=0; j<=m+1; j++) b[i][j]=a[i][j];
}
void lee(int d[nmax][nmax], int x, int y)
{
struct pozitie {int lin, col;}c[nmax*nmax], p, v;
c[0].lin=x; c[0].col=y;
d[x][y]=1;
v.lin=v.col=0;
int prim=0, ultim=0;
while(prim<=ultim){
p=c[prim]; prim++;
for(k=0; k<8; k++){
v.lin=p.lin+dl[k]; v.col=p.col+dc[k];
if(d[v.lin][v.col]==0){
d[v.lin][v.col]=d[p.lin][p.col]+1;
ultim++; c[ultim]=v;
}
}
}
}
int main()
{
citire();
lee(a, xr, yr);
lee(b, xj, yj);
int i, j;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
if(a[i][j]!=-1 && a[i][j]==b[i][j]){
if(a[i][j]<min){ min=a[i][j]; x=i; y=j;}
}
freopen("rj.out", "w", stdout);
printf("%d %d %d", min, x, y);
fclose(stdout);
return 0;
}