import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;

public class Q4 {
	static char[][] map = new char[10][10];
	static int[][] time = new int[10][10];

	public static void main(String[] args) throws FileNotFoundException {
		Scanner scan = new Scanner(new File("DATA4.txt"));
		PrintWriter out = new PrintWriter(new File("OUT4.txt"));
		while (scan.hasNext()) {
			map = new char[10][10];
			time = new int[10][10];
			for (int i = 0; i < 10; i++) {
				String z = scan.next();
				for (int j = 0; j < 10; j++) {
					map[i][j] = z.charAt(j);
					if (map[i][j] == 'T') {
						time[i][j] = 999;
					} else if (map[i][j] == 'F') {
						time[i][j] = 0;
					} else if (map[i][j] == '.') {
						time[i][j] = -10;
					}
				}
			}
			for (int i = 0; i < 10; i++) {
				for (int j = 0; j < 10; j++) {
					if (map[i][j] == 'F') {
						spread(i, j, 0);
					}
				}
			}
			int max = time[0][0];
			for (int i = 0; i < 10; i++) {
				for (int j = 0; j < 10; j++) {
					max = Math.max(max, time[i][j]);
				}
			}
			if (max == 999) {
				max = -1;
			}
			out.println(max);
			scan.next();
		}
		out.close();
	}

	private static void spread(int i, int j, int steps) {
		if (i >= 0 && i < 10 && j >= 0 && j < 10) {
			if (time[i][j] > steps || steps == 0) {
				time[i][j] = steps;
				spread(i - 1, j, steps + 1);
				spread(i + 1, j, steps + 1);
				spread(i, j - 1, steps + 1);
				spread(i, j + 1, steps + 1);
			}
		}
	}
}

