program main
	implicit none
    character(2*10**5)::s
    character(2)::ss
    integer,allocatable::dp(:)
    integer(8)::ans,le,i,t,le2
    read(*,*) s
    le=len_trim(s)
    allocate(dp(le))
    dp(1)=1
    if(le==1)then
    	write(*,*) 1
        deallocate(dp)
        stop
    else if(le==2)then
    	if(s(1:1)==s(2:2))then
    		dp(2)=1
    	else
    		dp(2)=2
        end if
        write(*,*) dp(2)
        deallocate(dp)
        stop
    else if(le==3)then
    	if(s(1:1)==s(2:2))then
    		dp(2)=1
    	else
    		dp(2)=2
        end if
        if(s(3:3)==s(2:2))then
    		dp(3)=dp(1)+1
    	else
    		dp(3)=dp(2)+1
        end if
        write(*,*)dp(3)
        deallocate(dp)
        stop
    else
    
    	if(s(1:1)==s(2:2))then
    		dp(2)=1
            ss=s(1:2)
    	else
    		dp(2)=2
            ss=s(2:2)
    	end if
        if(s(3:3)==s(2:2))then
    		dp(3)=dp(1)+1
    	else
    		dp(3)=dp(2)+1
        end if
    	
    	do i=4,le
        	
        
    		if(s(i-1:i-1)==s(i:i))then
        		dp(i)=dp(i-3)+2
        	else
        		dp(i)=dp(i-1)+1
    		end if
    	end do
    	write(*,*) dp(le)
        deallocate(dp)
    end if
    stop
end program main
    
   