#include <iostream>
using namespace std;
char map[11][11];
int change_dir(int x){
switch(x){
case 5:return 1;
case 6:return 2;
case 7:return 3;
case 8:return 4;
default:break;
}
return x;
}
struct tchar{
int x,y,direction;
} farmer,cow;
void drawbegin(){
cow.direction=1;
farmer.direction=1;
for(int i=0;i<=11;i++) map[0][i]='*';
for(int i=0;i<=11;i++) map[i][0]='*';
for(int i=0;i<=11;i++) map[11][i]='*';
for(int i=0;i<=11;i++) map[i][11]='*';
}
bool judge(){
if((farmer.x==cow.x)&&(farmer.y==cow.y))
return true;
return false;
}
void move(tchar guy){
switch(guy.direction){
case 1:{
if(map[guy.x-1][guy.y]=='*'){
guy.direction++;
guy.direction=change_dir(guy.direction);
return ;
}
guy.x--;
break;
}
case 2:{
if(map[guy.x][guy.y+1]=='*'){
guy.direction++;
guy.direction=change_dir(guy.direction);
return ;
}
guy.y++;
break;
}
case 3:{
if(map[guy.x+1][guy.y]=='*'){
guy.direction++;
guy.direction=change_dir(guy.direction);
return ;
}
guy.x++;
break;
}
case 4:{
if(map[guy.x][guy.y-1]=='*'){
guy.direction++;
guy.direction=change_dir(guy.direction);
return ;
}
guy.y--;
break;
}
}
}
int main(){
drawbegin();
int time=0;
for(int i=1;i<=10;i++){
for(int j=1;j<=10;j++){
cin>>map[i][j];
switch(map[i][j]){
case 'C' :{
cow.x=i;
cow.y=j;
map[i][j]='.';
break;
}
case 'F' :{
farmer.x=i;
farmer.y=j;
map[i][j]='.';
break;
}
}
}
}
if(judge()){
cout<<0;
return 0;
}
while(!judge())
{
move(cow);
move(farmer);
time++;
}
cout<<time;
return 0;
}