#include <iostream>
#include <fstream>
#include <cmath>
#include <cstring>
#include <queue>
using namespace std;
int main()
{
ifstream fin("DATA4.txt",ios::binary);
ofstream fout("OUT4.txt",ios::binary);
int a,b,c,d,e,f,g,h,t,x,i,y;
char fm[12][12];
char final[12][12];
char k;
int fi;
queue<pair<int,int> > mq;
for(i=0;i<5;i++)
{
    memset(fm,'.',12*12);
memset(final,0,12*12);
    fi=0;
for(a=0;a<11;a++)
{
    for(b=0;b<10;b++)
    {
    fin>>k;
    if(a<10){
    fm[a+1][b+1]=k;
    if(k=='T')fi++;
    else if(k=='F')
    {
        mq.push(make_pair(a+1,b+1));
    }
    }
    }

}
h=0;
t=0;
pair<int,int> mp;
while (!mq.empty())
{
    //cout<<"hey"<<endl;
mp=mq.front();
mq.pop();
y=mp.first;
x=mp.second;
//cout<<y<<" "<<x<<endl;
if(fm[y+1][x]=='T')
{

    h++;
    fm[y+1][x]='F';
    final[y+1][x]=final[y][x]+1;
    if((final[y][x]+1)>t)t=((final[y][x]+1));
    mq.push(make_pair(y+1,x));
}
if(fm[y-1][x]=='T')
{
     // cout<<"hey1"<<endl;
    h++;
    fm[y-1][x]='F';
    final[y-1][x]=final[y][x]+1;
      if((final[y][x]+1)>t)t=((final[y][x]+1));
    mq.push(make_pair(y-1,x));
}
if(fm[y][x+1]=='T')
{
    h++;
    fm[y][x+1]='F';
    final[y][x+1]=final[y][x]+1;
      if((final[y][x]+1)>t)t=((final[y][x]+1));
    mq.push(make_pair(y,x+1));
}
if(fm[y][x-1]=='T')
{
    h++;
    fm[y][x-1]='F';
    final[y][x-1]=final[y][x]+1;
      if((final[y][x]+1)>t)t=((final[y][x]+1));
    mq.push(make_pair(y,x-1));
}
}
if(h!=fi)
{
    //cout<<h<<" "<<fi<<endl;
    fout<<-1<<endl;
    continue;
}
else
{

fout<<t<<endl;
}
}
}

