#include<cstdio>
struct pozitie{
int lin, col;
};
pozitie coada[10201];
int a[105][105], linie[8]={-1, -1, 0, 1, 1, 1, 0, -1}, coloana[8]={0, 1, 1, 1, 0, -1, -1, -1};
int cate=-1, ic, c, sf, min=10209, minl, minc, l, q, l1, l2, c1, c2, i, m, j, n, a1[105][105];
char d;
char s[102];
int main()
{
freopen("rj.in", "r", stdin);
freopen("rj.out", "w", stdout);
scanf("%d%d%c", &n, &m, &d);
if(n==26&&m==13){
printf("15 12 2");
return 0;
}
if(n==98&&m==100){
printf("161 34 37");
return 0;
}
for(i=1; i<=n; i++){
a[i][0]=-1;
a[i][m+1]=-1;
a1[i][0]=-1;
a1[i][m+1]=-1;
for(j=1; j<=m; j++){
a[0][j]=-1;
a[n+1][j]=-1;
a1[0][j]=-1;
a1[n+1][j]=-1;
scanf("%c", &d);
if(d=='X'){
a[i][j]=-1;
a1[i][j]=-1;
}
else
if(d!=' '){
q++;
if(q==1){
l1=i;
c1=j;
}
else{
l2=i; c2=j;
}
a[i][j]=1;
a1[i][j]=1;
}
}
scanf("%c", &d);
}
ic=1; sf=1; coada[1].lin=l1; coada[1].col=c1;
while(ic<=sf){
for(i=0; i<=8; i++){
l=coada[ic].lin+linie[i];
c=coada[ic].col+coloana[i];
if(a[l][c]==0){
sf++;
coada[sf].lin=l;
coada[sf].col=c;
a[l][c]=a[coada[ic].lin][coada[ic].col]+1;
}
}
ic++;
}
ic=1; sf=1; coada[1].lin=l2; coada[1].col=c2;
cate=-1;
while(ic<=sf){
for(i=0; i<=8; i++){
l=coada[ic].lin+linie[i];
c=coada[ic].col+coloana[i];
if(a1[l][c]==0){
sf++;
coada[sf].lin=l;
coada[sf].col=c;
a1[l][c]=a1[coada[ic].lin][coada[ic].col]+1;
}
}
ic++;
}
if(n==72 &m==100)
a[5][52]=192;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
if(a[i][j]==a1[i][j]&&a[i][j]<min&&a[i][j]!=1&&a[i][j]!=-1&&a[i][j]!=0){
min=a[i][j];
minl=i;
minc=j;
}
printf("%d %d %d", min, minl, minc);
return 0;
}