import java.util.*
 
fun main(args: Array<String>) {
  var arr = readLine()!!
  var length = arr.length - 1
  var count = 1
  var dp = arr.substring(0..0)
  var pos1 = 1
  var pos2 = 1

  while(pos1 <= length) {
    
    if(dp==arr.substring(pos1..pos2) && pos2 == length) {
      break
    }
    
    // 捜査対象とdpテーブルが等しい間はpos2をインクリメントする
    while(dp == arr.substring(pos1..pos2)) {
      println("while2")
      if(pos2 == length){
        // 最後尾まで走査が終わっている&&dpテーブルの値と隣り合う値が等しい場合
        break
      } else {
        pos2++  // 次の文字列を精査
      }
    }
    count++
    /*
    println("########")
    println(pos1)
    println(pos2)
    println(dp)
    println(arr.substring(pos1..pos2))
    */
    
    dp=arr.substring(pos1..pos2)
    
    // 次回走査開始位置
    pos1=pos2+1
    pos2=pos1
  }
  println(count)
}