var 
s:string[200];
a:array[1..26] of byte;
p,i,j:integer;
begin
 
while (s[1]<>'*') do
begin
readln(s);
insert(s,' ',1); 
for i:=1 to length(s) do 
begin
 
p:=Pos('  ',s);
While p>0 do 
begin
p:=Pos('  ',s);
delete(s,p,1);
end;
 
p:=Pos(' ',s);
While p>0 do 
begin
p:=Pos(' ',s);
s[p]:='0';
a[Ord(s[p+1])-96]+=1;
end;
 
end;
 
end;
 
for i:=1 to 26 do 
begin
if(a[i]<>0) then writeln(Chr(i+96),'-',a[i]);
end;
end.