#include<stdio.h>
const int dx[]={-1,1,0,1, 0,-1,-1, 1},
dy[]={-1,1,1,0,-1, 0, 1,-1};
struct {int r;int j;} a[101][101];
int n,i,j,m,xr,yr,min=10000,pf,pi,_i,_j,xj,yj;
void citire()
{char s[101];
scanf("%d %d",&n,&m);
char c=fgetc(stdin);
for(i=1;i<=n;i++)
{gets(s+1);
for(j=1;j<=m;j++)
{
if(s[j]==' ') a[i][j].r,a[i][j].j=0;
else if(s[j]=='X') a[i][j].r,a[i][j].j=1;
else if(s[j]=='R') {xr=i;
yr=j;
}
else {xj=i;yj=j;}
}
}
}
void aflur()
{
int x[10001],y[10001],li,lf;
li=1;
x[1]=xr; a[xj][yj].r=1;
y[1]=yr;lf=1;
for(li=1;li<=lf;li++)
{i=x[li];
j=y[li];
for(int k=0;k<8;k++)
{
_i=i+dx[k];
_j=j+dy[k];
if(a[_i][_j].r) continue;
if(_i<1||i>n) continue;
if(_j<1||j>m) continue;
lf++;
x[lf]=_i;
y[lf]=_j;
a[_i][_j].r=a[i][j].r+1;
}
}
}
void afluj()
{
int x[10001],y[10001],li,lf;
li=1;lf=1;
x[1]=xj;
y[1]=yj;a[xr][yr].j=1;
for(li=1;li<=lf;li++)
{i=x[li];
j=y[li];
for(int k=0;k<8;k++)
{
_i=i+dx[k];
_j=j+dy[k];
if(a[_i][_j].j) continue;
if(_i<1||i>n) continue;
if(_j<1||j>m) continue;
lf++;
x[lf]=_i;
y[lf]=_j;
a[_i][_j].j=a[i][j].j+1;
if(a[_i][_j].j==a[_i][_j].r)
if(a[_i][_j].r<min) {min=a[_i][_j].r;
pf=_i;
pi=_j;
}
}
}
printf("%d %d %d",min+1,pf,pi);
}
void solve()
{
aflur();
afluj();
}
int main()
{
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
citire();
solve();
return 0;
}