uses crt;
var n,i,m,j,kt,t,max:longint; d:text; a,b:string;
begin
clrscr;
assign(d,'input.pas');reset(d);
readln(d,a); n:=length(a);
close(d);
assign(d,'output.pas'); rewrite(d);
for i:=1 to n do
begin
kt:=0;
for j:=1 to m do If a[i]=b[j] then kt:=1;
If kt=0 then begin inc(m); b[m]:=a[i]; end;
end;
writeln(d,m);
max:=0;
for i:=1 to m do
begin
t:=0;
for j:=1 to n do If b[i]=a[j] then inc(t);
If t>max then max:=t;
end;
writeln(d,max);
close(d);
readln
end.