S=list(str(input()))
N=len(S)
lst=[[S[0]]]
i=1
j=2
tmp=[2]
def dp(lst,i,j,tmp):
  if j==N:
    if S[i:j]!=lst[-1]:
      return len(lst)+1
    else:
      return len(lst)
  if S[i:j]!=lst[-1]:
    lst.append(list(S[i:j]))
    tmp.append(j)
    return dp(lst,i+1,j+1,tmp)
  else:
    k=1
    while S[i:j+k]==lst[-1]:
      k+=1
    i=max(tmp)
    tmp.append(j+k)
    return dp(lst,i,j+k,tmp) 
print(dp(lst,i,j,tmp))