import java.awt.Point;
import java.io.*;
import java.util.*;

public class q4 {
	static void pln(Object o){
		System.out.println(o);
	}
	static char map[][];
	static int cnt = 0;
	static Set<Point> s; 
	static final int[][] d = {{0,1},{1,0},{0,-1},{-1,0}};
	
	public static void main(String[] args) throws IOException {
		Scanner in = new Scanner(new File("DATA4.txt"));
		PrintWriter out = new PrintWriter(new File("OUT4.txt"));
		while (in.hasNextLine()){
			cnt = 0;
			map = new char[10][10];
			for (int i=0;i<10;i++){
				String l = in.nextLine();
				for (int j=0;j<10;j++)
					map[j][i] = l.charAt(j);
			}
			out.flush();
			sim();
			for (int i=0;i<10;i++){
				for (int j=0;j<10;j++){
					if (map[j][i] == 'T'){
						cnt = -1;
						break;
					}
				}
			}
			//pln(map[3][4]);
			out.println(cnt);
			in.nextLine();
			out.flush();
		}
		out.close();
	}
	
	static void sim(){
		s = new HashSet<Point>();
		ff();
		while (!s.isEmpty()){
			cnt++;
			for (Point p : s){
				map[p.x][p.y] = 'F';
			}
			s.clear();
			ff();
		}
	}
	
	static void ff(){
		for (int i=0;i<10;i++)
		for (int j=0;j<10;j++)
		if (map[j][i] == 'F'){
		for (int k=0;k<4;k++){
			Point n = new Point(j+d[k][0],i+d[k][1]);
			if (n.x >= 0 && n.x < 10 && n.y >= 0 
					&& n.y < 10 && map[n.x][n.y] == 'T')
				s.add(n);
		}
		}
	}
	
}

