#include <bits/stdc++.h>
using namespace std;
const int N = 10; bool jg[N + 10][N + 10], jga[N + 10][N + 10][4], jgb[N + 10][N + 10][4];
int xc, yc, xf, yf, zc, zf; bool dc, df;
int xx[4] = {-1, 0, 1, 0},
yy[4] = { 0,+1, 0,-1};
int main(){
for(int i = 1; i <= N; i++){
for(int j = 1; j <= N; j++){
char in;
cin >> in;
if(in == '.'){
jg[i][j] = false;
}else if(in == '*'){
jg[i][j] = true;
}else if(in == 'C'){
xc = i; yc = j;
}else if(in == 'F'){
xf = i; yf = j;
}
}
}
for(int i = 0; i <= N + 1; i++){
jg[i][0] = jg[0][i] = true;
jg[i][N+1] = jg[N+1][i] = true;
}
jga[xc][yc][zc] = true;
jgb[xf][yf][zf] = true;
for(int m = 1; !(dc && df) ; m++){
int x1 = xc + xx[zc], y1 = yc + yy[zc];
if(jg[x1][y1]){
zc = (zc + 1) % 4;
}else{
xc = x1; yc = y1;
}
int x2 = xf + xx[zf], y2 = yf + yy[zf];
if(jg[x2][y2]){
zf = (zf + 1) % 4;
}else{
xf = x2; yf = y2;
}
if(xc == xf && yc == yf){
cout << m << endl; return 0;
}
if(jga[xc][yc][zc]){
dc = true;
}
if(jgb[xf][yf][zf]){
df = true;
}
jga[xc][yc][zc] = true;
jgb[xf][yf][zf] = true;
}
cout << 0 << endl;
return 0;
}