#include <iostream>
#include <fstream>
#include <queue>
#include <cstring>
#define nmax 101
using namespace std;
ifstream in("rj.in");
ofstream out("rj.out");
short n,m,i,j,k;
short a[nmax][nmax];
string s;
queue <short> qi,qj;
void rj(){
while (!qi.empty()){
i=qi.front(), j=qj.front();
qi.pop(), qj.pop();
int d=a[i][j];
if (a[i-1][j-1]==-1 || a[i-1][j-1]>d){
if (a[i-1][j-1]==d+1 && d+1<=k){
if (i-1<=n){
if (i-1==n){
if (j-1<m) m=j-1,k=a[n][m];
} else n=i-1, m=j-1,k=a[n][m];
}
}
a[i-1][j-1]=d+1, qi.push(i-1), qj.push(j-1);
}
if (a[i-1][j]==-1 || a[i-1][j]>d){
if (a[i-1][j]==d+1 && d+1<=k){
if (i-1<=n){
if (i-1==n){
if (j<m) m=j,k=a[n][m];
} else n=i-1, m=j,k=a[n][m];
}
}
a[i-1][j]=d+1, qi.push(i-1), qj.push(j);
}
if (a[i-1][j+1]==-1 || a[i-1][j+1]>d){
if (a[i-1][j+1]==d+1 && d+1<=k){
if (i-1<=n){
if (i-1==n){
if (j+1<m) m=j+1,k=a[n][m];
} else n=i-1, m=j+1,k=a[n][m];
}
}
a[i-1][j+1]=d+1, qi.push(i-1), qj.push(j+1);
}
if (a[i][j-1]==-1 || a[i][j-1]>d){
if (a[i][j-1]==d+1 && d+1<=k){
if (i<=n){
if (i==n){
if (j-1<m) m=j-1,k=a[n][m];
} else n=i, m=j-1,k=a[n][m];
}
}
a[i][j-1]=d+1, qi.push(i), qj.push(j-1);
}
if (a[i][j+1]==-1 || a[i][j+1]>d){
if (a[i][j+1]==d+1 && d+1<=k){
if (i<=n){
if (i==n){
if (j+1<m) m=j+1,k=a[n][m];
} else n=i, m=j+1,k=a[n][m];
}
}
a[i][j+1]=d+1, qi.push(i), qj.push(j+1);
}
if (a[i+1][j-1]==-1 || a[i+1][j-1]>d){
if (a[i+1][j-1]==d+1 && d+1<=k){
if (i+1<=n){
if (i+1==n){
if (j-1<m) m=j-1,k=a[n][m];
} else n=i+1, m=j-1,k=a[n][m];
}
}
a[i+1][j-1]=d+1, qi.push(i+1), qj.push(j-1);
}
if (a[i+1][j]==-1 || a[i+1][j]>d){
if (a[i+1][j]==d+1 && d+1<=k){
if (i+1<=n){
if (i+1==n){
if (j<m) m=j,k=a[n][m];
} else n=i+1, m=j,k=a[n][m];
}
}
a[i+1][j]=d+1, qi.push(i+1), qj.push(j);
}
if (a[i+1][j+1]==-1 || a[i+1][j+1]>d){
if (a[i+1][j+1]==d+1 && d+1<=k){
if (i+1<=n){
if (i+1==n){
if (j+1<m) m=j+1,k=a[n][m];
} else n=i+1, m=j+1,k=a[n][m];
}
}
a[i+1][j+1]=d+1, qi.push(i+1), qj.push(j+1);
}
}
}
void read(){
in >> n >> m;
in.get();
for (i=1; i<=n; i++){
getline(in, s);
k=0;
for (j=0; j<m; j++){
k++;
if (s[j]=='R') a[i][k]=1, qi.push(i), qj.push(k);
else if (s[j]=='J') a[i][k]=1, qi.push(i), qj.push(k);
if (isspace(s[j])) a[i][k]=-1;
if (s[j]=='X') a[i][k]=-2;
if (a[i][k]==0) a[i][k]=-1;
}
}
n=nmax; // iminim
m=nmax; // jminim
k=nmax*nmax; // valmin
}
int main(){
read();
rj();
out<<k<<" "<<n<<" "<<m<<"\n";
return 0;
}