#include <fstream>
#include <cstring>
using namespace std;
ifstream f("rj.in");
ofstream g("rj.out");
char s[101];
int n,m,i,j,a[101][101],b[101][101],x1,x2,y1,y2,i1,j1,mmin=10002,ci,cj;
const int dx[]= {-1,-1,1,1,0,0,-1,1},dy[]= {1,-1,-1,1,-1,1,0,0};
struct coada
{
int c,l;
} Q[100001];
void lee(int a[][101], int n, int m, int x, int y)
{
int st=1,dr=1,k,ii,jj,OK;
Q[st].c=y,Q[st].l=x;
while(st<=dr)
{
i=Q[st].l,j=Q[st].c;
for(k=0; k<8; k++)
{
ii=i+dx[k],jj=j+dy[k];
if(a[ii][jj]==0)
{
a[ii][jj]=a[i][j]+1;
dr++;
Q[dr].l=ii,Q[dr].c=jj;
}
}
st++;
}
}
void afismat(int a[][101], int n, int m)
{
for(int i=1; i<=n; i++)
{
for(int j=1; j<=m; j++)
g<<a[i][j];
g<<'\n';
}
}
int main()
{
f>>n>>m,f.get();
for(i=0; i<n; i++)
{
i1++,f.getline(s,sizeof(s));
for(j=0; j<m; j++)
{
j1++;
if(strchr("X",s[j]))
b[i1][j1]=a[i1][j1]=-1;
else if(strchr(" ",s[j]))
b[i1][j1]=a[i1][j1]=0;
else if(strchr("R",s[j]))
a[i1][j1]=1,x1=i1,y1=j1;
else
b[i1][j1]=1,x2=i1,y2=j1;
}
j1=0;
}
for(i=0; i<=n+1; i++)
a[i][0]=a[i][m+1]=b[i][0]=b[i][m+1]=-1;
for(j=0; j<=m+1; j++)
a[0][j]=a[n+1][j]=b[0][j]=b[n+1][j]=-1;
lee(a,n,m,x1,y1);
lee(b,n,m,x2,y2);
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
if(a[i][j]==b[i][j] && a[i][j]>=1)
{
if(a[i][j]<mmin)
mmin=a[i][j],ci=i,cj=j;
}
g<<mmin<<" "<<ci<<" "<<cj;
return 0;
}