{$IFDEF NORMAL}
{$I-,Q-,R-,S-}
{$ENDIF NORMAL}
{$IFDEF DEBUG}
{$I+,Q+,R+,S-}
{$ENDIF DEBUG}
{$IFDEF RELEASE}
{$I-,Q-,R-,S-}
{$ENDIF RELEASE}
type as=ansistring;
var fi,fo:text;
a,s:as;
nc,nl,rez:longword;
ok:boolean;
function min(i,j:longword):longword;
begin
if i=0 then begin min:=j; exit; end;
if j=0 then begin min:=i; exit; end;
if i>j then min:=j
else min:=i;
end;
procedure taie;
begin
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);
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);
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);
while pos('0 ',s)<>0 do
delete(s,pos('0 ',s),1);
while pos('1 ',s)<>0 do
delete(s,pos('1 ',s),1);
while pos('2 ',s)<>0 do
delete(s,pos('2 ',s),1);
while pos('3 ',s)<>0 do
delete(s,pos('3 ',s),1);
while pos('4 ',s)<>0 do
delete(s,pos('4 ',s),1);
while pos('5 ',s)<>0 do
delete(s,pos('5 ',s),1);
while pos('6 ',s)<>0 do
delete(s,pos('6 ',s),1);
while pos('7 ',s)<>0 do
delete(s,pos('7 ',s),1);
while pos('8 ',s)<>0 do
delete(s,pos('8 ',s),1);
while pos('9 ',s)<>0 do
delete(s,pos('9 ',s),1);
while pos(' 0',s)<>0 do
delete(s,pos(' 0',s),1);
while pos(' 1',s)<>0 do
delete(s,pos(' 1',s),1);
while pos(' 2',s)<>0 do
delete(s,pos(' 2',s),1);
while pos(' 3',s)<>0 do
delete(s,pos(' 3',s),1);
while pos(' 4',s)<>0 do
delete(s,pos(' 4',s),1);
while pos(' 5',s)<>0 do
delete(s,pos(' 5',s),1);
while pos(' 6',s)<>0 do
delete(s,pos(' 6',s),1);
while pos(' 7',s)<>0 do
delete(s,pos(' 7',s),1);
while pos(' 8',s)<>0 do
delete(s,pos(' 8',s),1);
while pos(' 9',s)<>0 do
delete(s,pos(' 9',s),1);
while pos('0',s)<>0 do
delete(s,pos('0',s),1);
while pos('1',s)<>0 do
delete(s,pos('1',s),1);
while pos('2',s)<>0 do
delete(s,pos('2',s),1);
while pos('3',s)<>0 do
delete(s,pos('3',s),1);
while pos('4',s)<>0 do
delete(s,pos('4',s),1);
while pos('5',s)<>0 do
delete(s,pos('5',s),1);
while pos('6',s)<>0 do
delete(s,pos('6',s),1);
while pos('7',s)<>0 do
delete(s,pos('7',s),1);
while pos('8',s)<>0 do
delete(s,pos('8',s),1);
while pos('9',s)<>0 do
delete(s,pos('9',s),1);
end;
procedure solve;
var i,j,c,sp,ln:longword;
begin
i:=1;
sp:=0;
ln:=0;
for i:=1 to 10 do
if s[i] in[('A')..('Z')] then
begin
delete(s,1,i-1);
break;
end
else
if s[i] in[('a')..('z')] then
begin
delete(s,1,i-1);
break;
end;
ok:=false;
nc:=1;
while pos('- ',s)<>0 do
delete(s,pos('- ',s),1);
while ok=false do
begin
while pos('-',s)<>0 do
begin
if s[pos('-',s)+1]=' ' then
delete(s,pos('-',s),2)
else delete(s,pos('-',s),1);
inc(nc);
end;
while pos(' ',s)<>0 do
begin
if s[pos(' ',s)+1]=' ' then
delete(s,pos(' ',s),2)
else delete(s,pos(' ',s),1);
inc(nc);
end;
ok:=true;
end;
nl:=length(s);
rez:=trunc(nl/nc);
end;
begin
assign(fi,'text.in'); reset(fi);
assign(fo,'text.out'); rewrite(fo);
read(fi,a);
s:=a;
taie;
solve;
{ writeln(fo,nl);
writeln(fo,nc);}
writeln(fo,rez);
close(fi);
close(fo);
end.