import java.util.*;
import java.io.*;

public class Problem4{
	public static void main(String[]args) throws IOException{
		Scanner inFile = new Scanner(new BufferedReader(new FileReader("DATA4.txt")));
		PrintWriter outFile = new PrintWriter(new BufferedWriter(new FileWriter("OUT4.txt")));
		for(int c=0;c<5;c++){
			if(c>=1){
				outFile.println();
			}
			int[][]grid = new int[10][10];
			int tree = 0;
			int f = 0;
			LinkedList<Integer>fire = new LinkedList<Integer>();
			for(int i=0;i<10;i++){
				String line = inFile.nextLine();
				for(int j=0;j<10;j++){
					char a = line.charAt(j);
					if(a=='T'){
						grid[i][j]=1;
						tree++;
					}else if(a=='F'){
						grid[i][j]=2;
						fire.add(i*10+j);
						f++;
					}
				}
			}
			int t = 0;
			while(fire.size()!=0){
				int node = fire.pollFirst();
				int x = node%10;
				int y = node/10;
				if(y+1<=10){
					if(grid[y+1][x]==1){
						grid[y+1][x] = 2;
						fire.add(10*(y+1)+x);
						tree--;
					}
				}
				if(x+1<=10){
					if(grid[y][x+1]==1){
						grid[y][x+1] = 2;
						fire.add(10*(y)+x+1);
						tree--;
					}
				}
				if(x-1>=0){
					if(grid[y][x-1]==1){
						grid[y][x-1] = 2;
						fire.add(10*(y)+x-1);
						tree--;
					}
				}
				if(y-1>=0){
					if(grid[y-1][x]==1){
						grid[y-1][x] = 2;
						fire.add(10*(y-1)+x);
						tree--;
					}
				}
				f--;
				if(f==0){
					f=fire.size();
					t++;
				}
			}
			if(tree==0){
				outFile.print(t-1);	
			}else{
				outFile.print(-1);
			}
		}
		outFile.close();
	}
}
