import java.io.File;
import java.io.PrintWriter;
import java.util.LinkedList;
import java.util.Scanner;


public class right4 {
	public static void main(String args[]) throws Exception {
		Scanner read = new Scanner(new File("DATA4.txt"));
		PrintWriter write = new PrintWriter(new File("OUT4.txt"));
		for (int i = 0; i < 5; i++){
			char grid [] []= new char [10][10];
			LinkedList <Integer>fX = new LinkedList<Integer>();
			LinkedList <Integer>fY = new LinkedList<Integer>();
			
			int trees = 0;
			int fires = 0;
			int newfires = 0;
			for (int y = 0; y < 10; y++){
				String line = new String (read.nextLine());
				for (int x = 0; x < 10; x++){
					char cloud = line.charAt(x);
					grid [x][y] = cloud;
					System.out.print(line.charAt(x));
					if (cloud == 'T')
						trees++;
					else if (cloud == 'F'){
						fires++;
						fX.push(x);
						fY.push(y);
					}
				}
				System.out.println();
			}

			System.out.println("t:" + trees);
			System.out.println("f:" + fires);
			System.out.println("listed " + fX.size());
			
			int turn = -1;
			boolean burning = true;
			while (burning){
				if (fires == 0)
					burning = false;
				else
					turn++;
				
				
				int burncount = fires; 
				for (int forest = 0; forest < burncount; forest++){
					int bX = fX.pop();
					int bY = fY.pop();

					for (int y = 0; y < 10; y++){
						for (int x = 0; x < 10; x++){
							System.out.print(grid [x][y]);
						}
						System.out.println();
					}
					System.out.println("listed " + fX.size());
					System.out.println("remaining " + trees);
					fires--;
					if (bY + 1 < 10){
						System.out.println(bX + "," + bY +" ]:");
						if (grid [bX][bY+1] == 'T'){
							newfires++;
							trees--;
							fX.add(bX);
							fY.add(bY+1);
							grid [bX][bY+1] = '.';
							System.out.println(bX + "," + bY +"\nburning " + trees);
						}
					}
					if (bX + 1 < 10){
						System.out.println(bX + "," + bY +" ]:");
						if (grid [bX+1][bY] == 'T'){
							newfires++;
							trees--;
							fX.add(bX+1);
							fY.add(bY);
							grid [bX+1][bY] = '.';
							System.out.println(bX + "," + bY +"\nburning " + trees);
						}
					}
					if (bY - 1 >= 0){
						System.out.println(bX + "," + bY + " ]:");
						if (grid [bX][bY-1] == 'T'){
							newfires++;
							trees--;
							fX.add(bX);
							fY.add(bY-1);
							grid [bX][bY-1] = '.';
							System.out.println(bX + "," + bY +"\nburning " + trees);
						}
					}
					if (bX - 1 >= 0){
						System.out.println(bX + "," + bY + " ]:");
						if (grid [bX-1][bY] == 'T'){
							newfires++;
							trees--;
							fX.add(bX-1);
							fY.add(bY);
							grid [bX-1][bY] = '.';
							System.out.println(bX + "," + bY +"\nburning " + trees);
						}
					}
					
				}
				//endburn
				
				fires = newfires;
				newfires = 0;

				System.out.println("turnme " + turn);
			}
			//endloop
			System.out.println("dt:" + trees);
			System.out.println("df:" + fires);
			if (trees == 0)
				write.println(turn);
			else
				write.println("-1");
			
			read.nextLine();
		}
		write.close();
	}
}

