var s:string;
    a:array[1..8,1..8]of char;
    i,j:integer;
    
procedure R;
begin
  writeln('+---+---+---+---+---+---+---+---+');
end;

procedure N(i,j:integer);
begin
  if (i+j) mod 2=1 then write('.')
    else write(':');
end;

procedure Slovo(Male:boolean);
var c:char;
    x,y,d:integer;
begin
  case s[1]of
    'K','Q','R','B','N':begin c:=s[1]; d:=1; end;
    else begin c:='P'; d:=0; end;
  end;
  
  x:=ord(s[1+d])-ord('a')+1;
  y:=ord(s[2+d])-ord('0');
  if Male then c:=chr(ord(c)-ord('A')+ord('a'));
  a[x,y]:=c;
  
  delete(s,1,3+d);
end;

BEGIN
  for i:=1 to 8 do
    for j:=1 to 8 do
      a[i,j]:=' ';
  
  readln(s); delete(s,1,7);
  while s<>''do Slovo(False);
  
  readln(s); delete(s,1,7);
  while s<>''do Slovo(True);
  
  for j:=8 downto 1 do
    begin
      R;
      for i:=1 to 8 do 
        begin
          write('|'); N(i,j);
          if a[i,j]=' 'then N(i,j)
            else write(a[i,j]);
          N(i,j);
        end;
      writeln('|');
    end;
  R;  
END.