program h;


var plocha: array [1..8, 1..8]  of char;

type TFarba = (white, black);
     TPozicia = record
     			panacik: char;
     			y, x: byte;
     		end;

var pozicie: array [white..black, 1..16] of TPozicia;

procedure pridaj(c: char; yy,xx: integer);
var index: integer;
    farba : TFarba;
begin
	if c=upcase(c) then farba:=white else farba:=black;
	index := 0;
	case c of
		'K', 'k': index := 1;
		'Q', 'q': index := 2;
		'R', 'r': begin
				if pozicie[farba, 3].panacik <> #0 then
					index := 4
				else
					index := 3;
			end;
		'B', 'b': begin
				if pozicie[farba, 5].panacik <> #0 then
					index := 6
				else
					index := 5;
			end;
		'N', 'n': begin
				if pozicie[farba, 7].panacik <> #0 then
					index := 8
				else
					index := 7;
			end; 	
		'P', 'p': begin
			for index:=9 to 16 do
				if pozicie[farba, index].panacik = #0 then break;
			end;
	end;
	with pozicie[farba, index] do begin
		panacik := upcase(c);
		y := yy;
		x := xx;
	end;
end;

procedure zarad(farba: tfarba; od, ddo: integer);
var i, j, min: integer;
	p:TPozicia;
begin
	if farba=white then begin
		for i:=od to ddo-1 do begin
			min:=i;
			for j:=i+1 to ddo do
				if (pozicie[farba, j].y<>0) and (pozicie[farba, j].y > pozicie[farba, min].y) or 
				   ((pozicie[farba, j].y = pozicie[farba, min].y) and 
				    (pozicie[farba, j].x < pozicie[farba, min].x)) then min:=j;
			p:=pozicie[farba, i];
			pozicie[farba, i] := pozicie[farba, min];
			pozicie[farba, min] := p;
		end; 
	end else begin
		for i:=od to ddo-1 do begin
			min:=i;
			for j:=i+1 to ddo do
				if (pozicie[farba, j].y<>0) and (pozicie[farba, j].y < pozicie[farba, min].y) or 
				   ((pozicie[farba, j].y = pozicie[farba, min].y) and 
				    (pozicie[farba, j].x < pozicie[farba, min].x)) then min:=j;
			p:=pozicie[farba, i];
			pozicie[farba, i] := pozicie[farba, min];
			pozicie[farba, min] := p;
		end;
	end;
end;


procedure spracuj;
var i, j: integer;
begin
	for i:=1 to 8 do begin
		for j:=1 to 8 do begin
			if (plocha[i, j] <> '.') and (plocha[i,j] <> ':') then
				pridaj(plocha[i,j], i, j);			
		end;
	end;
	zarad(white, 3,4);
	zarad(white, 5,6);
	zarad(white, 7,8);
	zarad(white, 9,16);
	
	zarad(black, 3,4);
	zarad(black, 5,6);
	zarad(black, 7,8);
	zarad(black, 9,16);
end;

procedure nacitaj;
var vstup: string[50];
    i, j: integer;
begin
	readln(vstup);
	for i:=1 to 8 do begin
		readln(vstup);
		j:=3;
		while j< 32 do begin
			plocha[i, j div 4 + 1] := vstup[j];
			j:=j+4;
		end;
		readln(vstup);
	end;
end;

procedure vypis;
var i: integer;
begin
	{biele}
	
	write('White: ');
	for i:=1 to 16 do
		with pozicie[white, i] do begin
			if y<>0 then begin
				if panacik <> 'P' then write(panacik);
				write(chr(x+ord('a')-1));
				write(9-y);
				if i<16 then write(',');
			end;
		end;
	writeln;
	
	write('Black: ');
	for i:=1 to 16 do
		with pozicie[black, i] do begin
			if y<>0 then begin
				if panacik <> 'P' then write(panacik);
				write(chr(x+ord('a')-1));
				write(9-y);
				if i<16 then write(',');
			end;
		end;
	writeln;

end;

begin
	nacitaj;
	spracuj;
	vypis;
end.