import java.io.*;
import java.util.*;

class dwite4
{
	static int min = 10000000, n;
	static boolean[][] seen = new boolean[8][8];
	static char[][] g = new char[8][8];
	static int[] di = {-1, -1, 0, 1, 1, 1, 0, -1};
	static int[] dj = {0, 1, 1, 1, 0, -1, -1, -1};
	
	public static void main (String [] args) throws IOException 
	{
   
    	BufferedReader f = new BufferedReader(new FileReader("DATA4.txt"));
    	PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("OUT4.txt")));
							
		while (f.ready())
		{
			min = 10000000;

			for (int i=0; i<8; i++)
				g[i] = f.readLine().toCharArray();
			
			for (int i=0; i<8; i++)
				for (int j=0; j<8; j++)
					if (g[i][j]=='A')
					{
						seen[i][j] = true;
						dfs(i, j, 0);
					}
					
			out.println(min);
		}
		
		out.close();
		System.exit(0);
	}
	
	static void dfs(int i, int j, int step)
	{	
		if (step>min) return;
		if (g[i][j]=='B')
		{
			min = Math.min(min, step);
			return;
		}

		for (int k=0; k<8; k++)
			try
			{
				int ni = i+di[k];
				int nj = j+dj[k];
				
				if (seen[ni][nj] || g[ni][nj]=='#') continue;
				
				seen[ni][nj] = true;
				dfs(ni, nj, step+1);
				seen[ni][nj] = false;
			}
			catch (Exception e) {};
		
		return;
	}
}
