#include <iostream>
#include <fstream>
#include <cstring>
#define NMAX 105
using namespace std;
int r[NMAX][NMAX], ju[NMAX][NMAX], ma[NMAX][NMAX], n, m, i, j, lr, cr, lj, cj, l, c, minim=1<<20;
char s[NMAX], ccc;
int d[8][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}, {1, 1}, {1, -1}, {-1, 1}, {-1, -1}};
void BFS(int dist[NMAX][NMAX], int l, int c)
{
int p, ll, cc, linie[NMAX*NMAX], col[NMAX*NMAX], st=0, sf=1;
linie[0]=l;
col[0]=c;
dist[l][c] = 1;
while(st<sf)
{
for(p=0; p<8; p++)
{
ll=linie[st]+d[p][0],cc=col[st]+d[p][1];
if(ll>=0&&ll<n&&cc>=0&&cc<m)
if(ma[ll][cc]==0&&dist[ll][cc]==0)
{
dist[ll][cc]=dist[linie[st]][col[st]]+1;
linie[sf]=ll;
col[sf]=cc;
sf++;
}
}
st++;
}
}
int main()
{
ifstream f("rj.in");
ofstream cout("rj.out");
f>>n>>m;
f.get(ccc);
for(i=0; i<n; i++)
{
f.getline(s,150,'\n');
for(j=0; j<m; j++)
if(s[j]==' ')
ma[i][j]=0;
else if(s[j]=='X')
ma[i][j]=1;
else if(s[j]=='R')
ma[i][j]=0,lr=i,cr=j;
else if(s[j]=='J')
ma[i][j]=0,lj=i,cj=j;
else
ma[i][j]=0;
}
BFS(r,lr,cr);
BFS(ju,lj,cj);
for(i=0; i<n; i++)
for(j=0; j<m; j++)
if(r[i][j]==ju[i][j]&&ma[i][j]==0&&r[i][j]!=0)
if(minim>r[i][j])
minim=r[i][j],l=i,c=j;
cout<<minim<<' '<<l+1<<' '<<c+1;
return 0;
}