st=str(raw_input())
n=len(st)
lst=[[st[0],0]]
for i in range(0,n):
  if st[i]==lst[-1][0]:
    lst[-1][1]+=1
  else:
    lst.append([st[i],1])
#print lst
q=len(lst)
c=0
i=0
op=0
while len(lst)>1:
  op=op+1
  te=[]
  if lst[0][1]>1:
    te.append((lst[0][0],lst[0][1]-1))
  for i in range(1,q-1):
    if lst[i][1]>2:
      te.append((lst[i][0],lst[i][1]-2))
  if lst[-1][1]>1:
    te.append((lst[-1][0],lst[-1][1]))
  c=c+1
  #print te,"te"
  if len(te)==0:
    break
  else:
    
      
    ans=[[te[0][0],0]]
    for i in range(0,len(te)):
      if ans[-1][0]==te[i][0]:
        ans[-1][1]+=te[i][1]
      else:
        ans.append([te[i][0],te[i][1]])
    #print ans
  lst=ans
print op
  

