#include<bits/stdc++.h>
using namespace std;
char a[15][15],step;//格子
int fx,fy,cx,cy;
int tf=0,tc=0;//农夫和牛的转向值
int tx[4]={-1,0,1,0},ty[4]={0,1,0,-1};//转向数组,北东南西
int main()
{
for(int i=1;i<=10;i++)
for(int j=1;j<=10;j++)
{
cin>>a[i][j];
if(a[i][j]=='F')
{
fx=i; fy=j;
}
else if(a[i][j]=='C')
{
cx=i; cy=j;//保存农夫和牛牛的坐标
}
}
for(int i=0;i<=11;i++)
a[11][i]=a[i][11]=a[0][i]=a[i][0]='*';//边缘障碍物设定,便不用再用数字范围判断移动的时候是否越界,只需看是否移动到*即可
/*for(int i=0;i<=11;i++)
{
for(int j=0;j<=11;j++)
cout<<a[i][j];
cout<<endl;
}//用来检查边界是否设置完全的*/
while(fx!=cx && fy!=cy)//没有相遇
{// && 1<=cx&&cx<=10 && 1<=cy&&cy<=10 && 1<=fx&&fx<=10 && 1<=fy&&fy<=10
//北东南西
if(a[fx+tx[tf]][fy+ty[tf]]=='*') tf=(tf+1)%4;//碰到障碍物转向
else fx+=tx[tf],fy+=ty[tf];
if(a[cx+tx[tc]][cy+ty[tc]]=='*') tc=(tc+1)%4;//碰到障碍物转向
else cx+=tx[tc],cy+=ty[tc];
step++;
}
cout<<step;
return 0;
}