program bridge; var dealer:char; line:string; i,j,n:integer; hraci: array[0..3] of string; function Cr(a,b:Char):Integer; var c:Integer; begin Case a of 'C': c:=100; 'D': c:=200; 'S': c:=300; 'H': c:=400; end; Case b of 'A': c:=c+14; 'K': c:=c+13; 'Q': c:=c+12; 'J': c:=c+11; 'T': c:=c+10; else c:=c+Ord(b)-Ord('1')+1; end; Cr:=c; end; procedure vymen(var x,y:Char); var a:Char; begin a:=x; x:=y; y:=a; end; procedure Serad(var x: string); var i,j:Integer; begin for i:=1 to length(x) div 2 do for j:=i+1 to length(x) div 2 do begin if Cr(x[i*2-1],x[i*2])>Cr(x[j*2-1],x[j*2]) then begin vymen(x[i*2-1],x[j*2-1]); vymen(x[i*2],x[j*2]); end; end; end; begin readln(dealer); while dealer <> '#' do begin case dealer of 'N': n:=1; 'E': n:=2; 'S': n:=3; 'W': n:=0; end; for i := 1 to 2 do begin readln(line); for j:=1 to Length(line) div 2 do begin hraci[n]:=hraci[n] + line[j*2-1] + line[j*2]; n := (n + 1) mod 4; end; end; for j:=0 to 3 do begin serad(hraci[(j+2) mod 4]); n:=(j+2) mod 4; { writeln(hraci[n]);} case n of 2: Writeln('South player:'); 3: Writeln('West player:'); 0: Writeln('North player:'); 1: Writeln('East player:'); end; for i:=1 to Length(hraci[n]) div 2 do Write('+---'); writeln('+'); for i:=1 to Length(hraci[n]) div 2 do Write('|',hraci[n][i*2],' ',hraci[n][i*2]); writeln('|'); for i:=1 to Length(hraci[n]) div 2 do Write('| ',hraci[n][i*2-1],' '); writeln('|'); for i:=1 to Length(hraci[n]) div 2 do Write('|',hraci[n][i*2],' ',hraci[n][i*2]); writeln('|'); for i:=1 to Length(hraci[n]) div 2 do Write('+---'); writeln('+'); end; writeln; readln(dealer); end; { Hraci[0]:='C2H5DQC4S1'; Serad(hraci[0]); writeln(hraci[0]);} end.