#include<cstdio>
#include<cstring>
using namespace std;
int n,m,p,i,j,linie_r,coloana_r,linie_j,coloana_j,k;
int di[8]={-1,-1,0,1,1, 1, 0,-1};
int dj[8]={ 0, 1,1,1,0,-1,-1,-1};
char a[102][102],b[102][102];
struct drum
{
int linie;
int coloana;
int pasi;
};
drum julieta[10000],romeo[10000];
void citire()
{
FILE *f=fopen("rj.in","rt");
fscanf(f,"%i%i",&n,&m);
fgets(a[0],m,f);
for(int i=1;i<=n;i++)
fgets(a[i]+1,101,f);
fclose(f);
memcpy(b,a,102*102);
}
void pozitii()//determin pozitiile lui romeo si julieta
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(a[i][j]=='R')
{ linie_r=i; coloana_r=j; }
else
if(a[i][j]=='J')
{ linie_j=i; coloana_j=j; }
}
void verificare_romeo(int i,int j,int &ultim)//caut pozitii disponibile pt romeo
{
if(a[i][j]==' ')
{
ultim++;a[i][j]='V';
romeo[ultim].linie=i;
romeo[ultim].coloana=j;
romeo[ultim].pasi=p+1;
}
}
void verificare_julieta(int i,int j,int &ultim)//caut pozitii disponibile pt julieta
{
if(b[i][j]==' ')
{
ultim++;b[i][j]='v';
julieta[ultim].linie=i;
julieta[ultim].coloana=j;
julieta[ultim].pasi=p+1;
}
}
int main()
{
int pr,ur,pj,uj,fin;
citire();
pozitii();
//bordare_matrice();
romeo[0].linie=linie_r; romeo[0].coloana=coloana_r; julieta[0].linie=linie_j; julieta[0].coloana=coloana_j;
pr=0; ur=0; pj=0; uj=0;
while(pr<=ur)//pt romeo:
{
i=romeo[pr].linie;j=romeo[pr].coloana;p=romeo[pr].pasi;
for(k=0;k<8;k++)
verificare_romeo(i+di[k],j+dj[k],ur);
pr++;
}
while(pj<=uj)//pt julieta:
{
i=julieta[pj].linie;j=julieta[pj].coloana;p=julieta[pj].pasi;
for(k=0;k<8;k++)
verificare_julieta(i+di[k],j+dj[k],uj);
pj++;
}
k=1;fin=0;
do {
for(i=1;i<=ur;i++)
for(j=1;j<=uj;j++)
if(romeo[i].pasi==k && julieta[j].pasi==k &&
romeo[i].linie==julieta[j].linie && romeo[i].coloana==julieta[j].coloana)
fin=i;
k++;
}while(!fin && k<=romeo[ur].pasi);
FILE *g=fopen("rj.out","wt");
fprintf(g,"%i %i %i",romeo[fin].pasi+1,romeo[fin].linie,romeo[fin].coloana);
fclose(g);
}