#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

bool not_stopped(int before[10][10], int after[10][10])
{
  for(int i=0; i<=9; i++)
  {
    for(int j=0; j<=9; j++)
    {
      if(before[i][j]!=after[i][j]) return(true);
    }
  }
  return (false);
}

void set_equal(int before[10][10], int after[10][10])
{
  for(int i=0; i<=9; i++)
  {
    for(int j=0; j<=9; j++)
    {
      before[i][j]=after[i][j];
    }
  }
}

bool safe(int forest[10][10])
{
  for(int i=0; i<=9; i++)
  {
    for(int j=0; j<=9; j++)
    {
      if(forest[i][j]==1) return (true);
    }
  }
  return (false);
}

int main()
{
  int forest[10][10], before[10][10], time;
  string transfer;
  ifstream infile("DATA4.txt");
  ofstream outfile("OUT4.txt");
  for(int i=1; i<=5; i++)
  {
    time=0;
    for(int j=0; j<=9; j++)
    {
      infile>>transfer;
      for(int c=0; c<=9; c++)
      {
        if(transfer[c]=='.') forest[j][c]=0;
        else if(transfer[c]=='T') forest[j][c]=1;
        else if(transfer[c]=='F') forest[j][c]=2;
      }
    }
    while(not_stopped(before, forest))
    {
      time++;
      set_equal(before, forest);
      for(int p=0; p<=9; p++)
      {
        for(int q=0; q<=9; q++)
        {
          if(forest[p][q]==2)
          {
            if(p>=1)
            {
              if(forest[p-1][q]==1) forest[p-1][q]=2;
            }
            if(q>=1)
            {
              if(forest[p][q-1]==1) forest[p][q-1]=2;
            }
            if(p<=8)
            {
              if(forest[p+1][q]==1) forest[p+1][q]=2;
            }
            if(q>=1)
            {
              if(forest[p][q+1]==1) forest[p][q+1]=2;
            }
          }
        }
      }
    }
    infile>>transfer;
    if(!safe(forest))outfile<<time<<endl;
    else outfile<<-1<<endl;
  }
  return 0;
}

