#include<stdc++.h>
using namespace std;
struct cow {
int x;
int y;
int d;
};
struct farmer {
int x;
int y;
int d;
};
farmer f;
cow c;
char cmap[30][30] = { '\0' };
int bmap[30][30] = { 0 };
void FarmerMove()
{
switch (f.d)
{
case 1:
f.y--;
break;
case 2:
f.x++;
break;
case 3:
f.y++;
break;
case 4:
f.x--;
break;
default:
break;
}
}
void CowMove()
{
switch (c.d)
{
case 1:
c.y--;
break;
case 2:
c.x++;
break;
case 3:
c.y++;
break;
case 4:
c.x--;
break;
default:
break;
}
}
bool FMeetOb()
{
if (f.x + 1 == 10 || f.x - 1 == 0 || f.y + 1 == 10 || f.y - 1 == 0 || bmap[f.x+1][f.y]== 1 || bmap[f.x-1][f.y] == 1 || bmap[f.x][f.y-1]==1 || bmap[f.x][f.y+1] == 1)
{
return true;
}
else
{
return false;
}
}
bool CMeetOb()
{
if (c.x + 1 == 10 || c.x - 1 == 0 || c.y + 1 == 10 || c.y - 1 == 0 || bmap[c.x + 1][c.y] == 1 || bmap[c.x - 1][c.y] == 1 || bmap[c.x][c.y - 1] == 1 || bmap[c.x][c.y + 1] == 1)
{
return true;
}
else
{
return false;
}
}
void FTurn()
{
if (f.d == 4)
{
f.d = 1;
}
else
{
f.d++;
}
}
void CTurn()
{
if (c.d == 4)
{
c.d = 1;
}
else
{
c.d++;
}
}
int main()
{
c.d = 1;
f.d = 1;
int time = 1;
int tz = 0; bool s[199999];
memset(s, false, sizeof(s));
for (int i = 1; i <= 10; i++)
{
for (int j = 1; j <= 10; j++)
{
cin >> cmap[i][j];
switch (cmap[i][j])
{
case '*':
bmap[i][j] = 1;
break;
case 'F':
f.x = i;
f.y = j;
break;
case 'C':
c.x = i;
c.y = j;
break;
default:
break;
}
}
}
bool meet = false;
while (meet == false)
{
if (f.x == c.x && f.y == c.y)
{
meet = true;
}
else
{
time++;
tz = f.x + f.y * 10 + c.x * 100 + c.y * 200 + f.d * 3000 + c.d * 4000;
if (s[tz] == true)
{
cout << 0 << endl;
return 0;
}
else
{
if (FMeetOb())
{
FTurn();
}
if (CMeetOb())
{
CTurn();
}
FarmerMove();
CowMove();
s[tz] = true;
}
}
}
cout << time << endl;
return 0;
}