program Dwite5(input,output);
uses crt;
var layers: array [1..5,1..5] of chars;
    steps: array [1..5,1..5,1..5] of integer;
    x,y,z: integer;
    fin,fout: text;
    n: integer;
    i: integer;
    d: integer;

procedure FindSteps;
 var j,k: integer;
     finish: boolean;
     count: integer;
     posx,posy,posz: integer;

 begin
   finish:=false;
   count:=-1;

   for z:= 1 to d do
     for y:= 1 to d do
      for x:= 1 to d do
        begin
          steps[z,y,x]:=-1;
          if layers[z,y,x]='A' then
             begin
               posx:=x;
               posy:=y;
               posz:=z;
             end;
         end;
   steps[posz,posy,posx]:=0;


   while done=false do
     begin
        count:=count+1;
        if (layers[z,y+1,x]<>'#')and (steps[z,y+1,x]=-1) then
              begin
                  if layers[z,y+1,x]='B' then
                     begin
                        finish:=true;
                     end
                  else
                      steps[z,y+1,x]:=count;
              end;

        if (layers[z,y-1,x]<>'#')and (steps[z,y-1,x]=-1) then
              begin
                  if layers[z,y-1,x]='B' then
                     begin
                        done:=true;
                     end
                  else
                      steps[z,y-1,x]:=count;
              end;

         if (layers[z,y,x+1]<>'#')and (steps[z,y,x+1]=-1) then
              begin
                  if layers[z,y,x+1]='B' then
                     begin
                        done:=true;
                     end
                  else
                      steps[z,y,x+1]:=count;
              end;
         if (layers[z,y,x-1]<>'#')and (steps[z,y,x-1]=-1) then
              begin
                  if layers[z,y,x-1]='B' then
                     begin
                        done:=true;
                     end
                  else
                      steps[z,y,x-1]:=count;
              end;
         if (layers[z+1,y,x]<>'#')and (steps[z+1,y,x]=-1) then
              begin
                  if layers[z+1,y,x]='B' then
                     begin
                        done:=true;
                     end
                  else
                      steps[z+1,y,x]:=count;
              end;
         if (layers[z-1,y,x]<>'#')and (steps[z-1,y,x]=-1) then
              begin
                  if layers[z-1,y,x]='B' then
                     begin
                        done:=true;
                     end
                  else
                      steps[z-1,y,x]:=count;
              end;



         end;
     until (done=true);
    end;





begin
 assign (fin,'DATA5.txt');
 reset (fin);
 assign (fout,'OUT5.txt');
 assign (fout);

 for i:=1 to 5 do
  begin
     readln (fin,d);
     for x:= 1 to d do
      for y:= 1 to d do
       begin
         readln (fin,layers[x,y]);
       end;
     FindSteps;
    writeln (fout,count);
  end;
  close (fout);
 end.






