#include<cstdio>
#include<iostream>
using namespace std;
FILE *f=fopen("rj.in","r");
FILE *g=fopen("rj.out","w");
int a[101][101], b1[101][101], b2[101][101],n,m, dx[]={-1,-1,-1,0,1,1,1,0}, dy[]={-1,0,1,1,1,0,-1,-1},xr,yr,xj,yj, mini=1000000,xm,ym;
char d;
struct{int x,y;}c[20000];
int interior(int x,int y)
{
if(x<=n&&x>=1&&y<=m&&y>=1)return 1;
return 0;
}
void citire()
{
int i, j;
fscanf(f,"%d %d",&n,&m);
for(i=1;i<=n;i++)
{
fscanf(f,"\n");
for(j=1;j<=m;j++)
{
fscanf(f,"%c",&d);
if(d==' ')a[i][j]=0;
else if(d=='X')a[i][j]=-1;
else if(d=='R')
{
a[i][j]=0;
xr=i;
yr=j;
}
else
{
a[i][j]=0;
xj=i;
yj=j;
}
}
}
}
void lee(int x, int y, int b[101][101])
{
int xv, yv, p, u, i;
u=p=1;
c[u].x=x;
c[u].y=y;
b[x][y]=1;
while(p<=u)
{
x=c[p].x;
y=c[p++].y;
for(i=0;i<=7;i++)
{
xv=x+dx[i];
yv=y+dy[i];
if(interior(xv,yv)&&b[xv][yv]==0&&a[xv][yv]!=-1)
{
b[xv][yv]=b[x][y]+1;
c[++u].x=xv;
c[u].y=yv;
}
}
}
}
int main()
{
int i, j;
citire();
lee(xr,yr,b1);
lee(xj,yj,b2);
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(b1[i][j]==b2[i][j]&&b2[i][j]<mini&&b2[i][j])
{
mini=b1[i][j];
xm=i;
ym=j;
}
}
}
/*for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)cout<<b1[i][j]<<" ";
cout<<'\n';
}*/
fprintf(g,"%d %d %d",mini,xm,ym);
fclose(f);
fclose(g);
return 0;
}