#include<stdio.h>
#include<queue>
#include<utility>
using namespace std;
int matj[150][150],matr[150][150];
const int vert[8]={-1,-1,0,1,1,1,0,-1};
const int oriz[8]={0,1,1,1,0,-1,-1,-1};
void lee(int x, int y, int mat[150][150])
{
int i;
pair < int, int > coord;
queue < pair < int, int > > coada;
coada.push(make_pair(x,y));
while(!coada.empty()){
for(i=0;i<8;++i){
coord=make_pair(coada.front().first+vert[i],coada.front().second+oriz[i]);
if(!mat[coord.first][coord.second]){
coada.push(coord);
mat[coord.first][coord.second]=mat[coada.front().first][coada.front().second]+1;
}
}
coada.pop();
}
}
int main()
{
int i,j,n,m;char sir[110];
pair < int, int > ro,ju;
freopen("rj.in","r",stdin);
freopen("rj.out","w",stdout);
scanf("%d %d\n",&m,&n);
for(i=1;i<=m;++i){
gets(sir);
for(j=0;j<=n;++j){
if(sir[j]=='X') matr[i][j+1]=matj[i][j+1]=-1;
else if(sir[j]=='R') ro=make_pair(i,j+1);
else if(sir[j]=='J') ju=make_pair(i,j+1);
}
}
for(i=0;i<=m+1;i++)
matr[i][0]=matr[i][m+1]=matj[i][0]=matj[i][m+1]=-1;
for(i=0;i<=n+1;i++)
matr[0][i]=matj[0][i]=matj[n+1][i]=matr[n+1][i]=-1;
lee(ro.first,ro.second,matr);
lee(ju.first,ju.second,matj);
int indi,indj,minim=2000000;
for(i=1;i<=m;++i)
for(j=1;j<=n;++j)
if(matj[i][j]==matr[i][j] && matj[i][j]>0 && matj[i][j]<minim){
minim=matj[i][j];
indi=i;indj=j;
}
printf("%d %d %d",minim+1,indi,indj);
fclose(stdin);fclose(stdout);
return 0;
}