var r1,r2,r3,r4:string;
r:ansistring;
i,j,k,len,max:integer;
sum:array[1..26]of integer;
last:boolean;
begin
readln(r1);
readln(r2);
readln(r3);
readln(r4);
r:=r1+r2+r3+r4;
len:=length(r);
max:=0;
for i:=1 to 26 do sum[i]:=0;
for i:=1to len do if (ord(r[i])>=65)and(ord(r[i])<=90)then inc(sum[ord(r[i])-64]);
for i:=1 to 26 do if sum[i]>max then max:=sum[i];
for i:=max downto 1 do begin
last:=true;
for j:=1 to 26 do begin
for k:=j+1 to 26 do if sum[k]>=i then last:=false;
if sum[j]>=i then write('*')else write(' ');
if not last then write(' ');
end;
writeln;
end;
for i:=1 to 25 do write(chr(64+i),' ');
write('Z');
end.