#include <iostream>
using namespace std;
bool judge[220000]={false};
char map[12][12]={'*'};
int way[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
bool isvalid(int x, int y, int z){
return map[x+way[z][0]][y+way[z][1]]!='*';
}
int main(){
for(int i=1;i<11;i++){
for(int j=1;j<11;j++){
cin>>map[i][j];
}
}
int cx,cy,fx,fy,cow=0,farmer=0,t=0;
for(int i=1;i<11;i++){
for(int j=1;j<11;j++){
if(map[i][j]=='C'){
cx=i,cy=j;
}
if(map[i][j]=='F'){
fx=i,fy=j;
}
}
}
while(1){
int num=fx+10*fy+100*cx+1000*cy+10000*(farmer+1)+40000*(cow+1);
if(judge[num]){
cout<<0;
return 0;
}else judge[num]=true;
if(isvalid(cx,cy,cow)){
cx+=way[cow][0];
cy+=way[cow][1];
}else{
cow=(cow+1)%4;
}
if(isvalid(fx,fy,farmer)){
fx+=way[farmer][0];
fy+=way[farmer][1];
}else{
farmer=(farmer+1)%4;
}
t++;
if(cx==fx&&cy==fy) break;
}
cout<<t;
return 0;
}