#include <iostream>
#include <cstdio>
using namespace std;
int OrasR[102][102], OrasJ[102][102], Sl=30000;
short N, M, Rx, Ry, Jx, Jy, Sx=200, Sy=200;
void Citire ()
{
FILE *fin = fopen ("rj.in", "r");
short i, j;
char c;
fscanf (fin, "%d %d\n", &N, &M);
for (i=0; i<=N+1; i++)
{
OrasR[i][0]=-1;
OrasR[i][M+1]=-1;
OrasJ[i][0]=-1;
OrasJ[i][M+1]=-1;
}
for (i=0; i<=M+1; i++)
{
OrasR[0][i]=-1;
OrasR[N+1][i]=-1;
OrasJ[0][i]=-1;
OrasJ[N+1][i]=-1;
}
for (i=1; i<=N; i++)
{
for (j=1; j<=M; j++)
{
fscanf (fin, "%c", &c);
if (c=='X')
{
OrasR[i][j]=-1;
OrasJ[i][j]=-1;
}
if (c=='R')
{
OrasR[i][j]=1;
Rx=i;
Ry=j;
}
if (c=='J')
{
OrasJ[i][j]=1;
Jx=i;
Jy=j;
}
}
fscanf (fin, "%c", &c);
}
fclose (fin);
}
void Afisare ()
{
FILE *fout = fopen ("rj.out", "w");
fprintf (fout, "%d %d %d\n", Sl, Sx, Sy);
fclose (fout);
}
void Lee (int RJ)
{
short n, L[10005], C[10005], xd[8]={-1, -1, 0, 1, 1, 1, 0, -1}, yd[8]={0, 1, 1, 1, 0, -1, -1, -1}, x, y, xnou, ynou, i, j;
for (i=0; i<10000; i++)
{
L[i]=0;
C[i]=0;
}
n=0;
if (RJ==0)
{
L[n]=Rx;
C[n]=Ry;
}
else
{
L[n]=Jx;
C[n]=Jy;
}
n++;
for (i=0; i<n; i++)
{
x=L[i];
y=C[i];
for (j=0; j<8; j++)
{
xnou=x+xd[j];
ynou=y+yd[j];
if (RJ==0)
{
if (OrasR[xnou][ynou]==0)
{
OrasR[xnou][ynou]=OrasR[x][y]+1;
L[n]=xnou;
C[n]=ynou;
n++;
}
}
else
{
if (OrasJ[xnou][ynou]==0)
{
OrasJ[xnou][ynou]=OrasJ[x][y]+1;
L[n]=xnou;
C[n]=ynou;
n++;
}
}
}
}
}
int main ()
{
short i, j;
Citire ();
Lee(0);
Lee(1);
for (i=1; i<=N; i++)
{
for (j=1; j<=M; j++)
{
if ((OrasR[i][j]==OrasJ[i][j])&&(OrasR[i][j]>1))
{
if (OrasR[i][j]==Sl)
{
if (i==Sx)
{
if (j<Sy)
{
Sy=j;
}
}
if (i<Sx)
{
Sx=i;
Sy=j;
}
}
if (OrasR[i][j]<Sl)
{
Sx=i;
Sy=j;
Sl=OrasR[i][j];
}
}
}
}
Afisare ();
return 0;
}