#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<stdlib.h>
#include<iomanip>
#include<algorithm>
#include<cmath>
#include<vector>
#define MAXN (int)1e5
#define MOD (int)1e5 + 7
#define N 1
#define E 2
#define S 3
#define W 4
using namespace std;
struct Status{
int x, y;
int dir;
};
char map[15][15];
void move(Status* s) {
if(s->dir == N) {
if(map[s->x - 1][s->y] != '*') s->x --;
else s->dir ++;
}
else if(s->dir == S) {
if(map[s->x + 1][s->y] != '*') s->x ++;
else s->dir ++;
}
else if(s->dir == W) {
if(map[s->x][s->y - 1] != '*') s->y --;
else s->dir ++;
}
else if(s->dir == E) {
if(map[s->x][s->y + 1] != '*') s->y ++;
else s->dir ++;
}
if(s->dir > 4) s->dir = 1;
}
int main() {
Status f, c;
for(int i = 1; i <= 10; i++) {
for(int j = 1; j <=10; j++) {
map[i][j] = getchar();
if(map[i][j] == 'F') f.x = i, f.y = j, f.dir = N;
if(map[i][j] == 'C') c.x = i, c.y = j, c.dir = N;
}
getchar();
}
for(int i = 0; i <= 11; i ++){
map[0][i] = '*', map[11][i] = '*';
map[i][0] = '*', map[i][11] = '*';
}
int ans = 0;
while(true) {
move(&f);
move(&c);
ans ++;
if(ans > MAXN * 1000) {
ans = 0;
break;
}
if(f.x == c.x && f.y == c.y) break;
}
cout << ans;
return 0;
}