import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

public class Dwite4 {

	static char[][] forest;

	public static void main(String[] args) throws IOException {
		Scanner in = new Scanner(new File("DATA4.txt"));
		PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("OUT4.txt")), true);

		for (int _ = 0; _ < 5; _++) {
			forest = new char[10][10];

			for (int i = 0; i < 10; i++)
				forest[i] = in.nextLine().trim().toCharArray();

			int count = 0;

			while (findFires(forest).length > 0) {
				destroyMoment(forest);
				count++;
				if (!findTrees(forest)) {
					break;
				}
				if (endCond(forest)) {
					count = -1;
					break;
				}
			}

			out.println(count);

			out.flush();
			if (in.hasNextLine())
				in.nextLine();
		}

		in.close();
		out.flush();
		out.close();
		System.exit(0);
	}

	private static int[][] findFires(char[][] forest) {
		int[][] current = new int[100][2];
		int ii = 0;

		for (int i = 0; i < 10; i++)
			for (int j = 0; j < 10; j++)
				if (forest[i][j] == 'F') {
					current[ii][0] = i;
					current[ii++][1] = j;
				}

		int[][] export = new int[ii][2];
		for (int i = 0; i < ii; i++) {
			export[i][0] = current[i][0];
			export[i][1] = current[i][1];
		}

		return export;
	}

	static void destroyMoment(char[][] forest) {
		int[][] array = findFires(forest);
		for (int i = 0; i < array.length; i++)
			destroyOne(array[i][0], array[i][1]);
	}

	private static void destroyOne(int r, int c) {
		if (r < forest.length - 1 && forest[r + 1][c] == 'T')
			forest[r + 1][c] = 'F';
		if (r > 0 && forest[r - 1][c] == 'T')
			forest[r - 1][c] = 'F';
		if (c < forest[r].length && forest[r][c + 1] == 'T')
			forest[r][c + 1] = 'F';
		if (c > 0 && forest[r][c - 1] == 'T')
			forest[r][c - 1] = 'F';
	}

	static boolean endCond(char[][] forest) {
		for (int i = 0; i < 10; i++) {
			for (int j = 0; j < 10; j++) {
				if (forest[i][j] == 'T') {
					if (i < forest.length - 1 && forest[i + 1][j] == 'F')
						return false;
					if (i > 0 && forest[i - 1][j] == 'F')
						return false;
					if (j < forest[i].length && forest[i][j + 1] == 'F')
						return false;
					if (j > 0 && forest[i][j - 1] == 'F')
						return false;
				}
			}
		}
		return true;
	}

	private static boolean findTrees(char[][] forest) {
		for (int i = 0; i < 10; i++)
			for (int j = 0; j < 10; j++)
				if (forest[i][j] == 'T')
					return true;
		return false;
	}
}

