#include<bits/stdc++.h>
using namespace std;
char m[12][12];
int f[3],c[3],ans,tdz;
bool zt[160005];
void move(int x,int y,int mi,int h){
if (mi==0){
if (m[x-1][y]=='*') if (h==0) f[0]=1; else c[0]=1;
else if (h==0) f[1]--; else c[1]--;
}else if (mi==1){
if (m[x][y+1]=='*') if (h==0) f[0]=2; else c[0]=2;
else if (h==0) f[2]++; else c[2]++;
}else if (mi==2){
if (m[x+1][y]=='*') if (h==0) f[0]=3; else c[0]=3;
else if (h==0) f[1]++; else c[1]++;
}else{
if (m[x][y-1]=='*') if (h==0) f[0]=0; else c[0]=0;
else if (h==0) f[2]--; else c[2]--;
}
}
bool pd(){
if (f[1]==c[1]&&f[2]==c[2]) return 0;
else return 1;
}
int main(){
for (int i=0;i<=11;i++) m[i][0]='*',m[i][11]='*';
for (int i=1;i<=11;i++) m[0][i]='*',m[11][i]='*';
for (int i=1;i<=10;i++){
for (int j=1;j<=10;j++){
cin>>m[i][j];
if (m[i][j]=='F') f[1]=i,f[2]=j;
if (m[i][j]=='C') c[1]=i,c[2]=j;
}
}
while (pd()){
tdz=f[1]+f[2]*10+c[1]*100+c[2]*1000+f[0]*10000+c[0]*40000;
if (zt[tdz]){
cout<<0<<endl;
return 0;
}
zt[tdz]=1;
move(f[1],f[2],f[0],0);
move(c[1],c[2],c[0],1);
ans++;
}
cout<<ans<<endl;
return 0;
}