var t:text; s,sep,cuv:string; i,k,x,y,nrc:integer; lm:real;
begin
assign(t,'text.in'); reset(t);
read(t,s);
close(t);
k:=0;
sep:=' ,.;!?-';
for i:=1 to length(s) do begin x:=pos(s[i],sep);
y:=pos(s[i-1],sep);
if (x=0) and (y<>0) then inc(k);
end;
for i:=1 to length(s) do begin x:=pos(s[i],sep);
y:=pos(s[i-1],sep);
if (x<>0) and (y=0) then delete(s,i,1);
end;
{while pos(' ',s)<>0 do delete(s,pos(' ',s),1);
while pos(',',s)<>0 do delete(s,pos(',',s),1);
while pos('-',s)<>0 do delete(s,pos('-',s),1);
while pos('!',s)<>0 do delete(s,pos('!',s),1);}
nrc:=length(s);
lm:=nrc/k;
assign(t,'text.out'); rewrite(t);
writeln(t,trunc(lm));
close(t);
end.