#include <bits/stdc++.h>
using namespace std;
static const long long INF = 1e18;
static const long long MAX = 101010;
static const long long MOD = 1e9 + 7;
int main(void) {
  long long i, j, k;
  string s;
  cin >> s;
  long long N = s.size();
  long long dp[MAX * 2][3] = {};
  s = "#" + s;
  dp[1][1] = 1;
  dp[2][1] = (s[1] == s[2]) ? 1 : 2;
  dp[2][2] = 1;
  for (i = 2; i <= N; i++) {
    if (s.substr(i - 1, 2) != s.substr(i + 1, 2))
      (dp[i + 2][2]) = max(dp[i + 2][2], dp[i][2] + 1);
    ;
    if (s.substr(i, 1) != s.substr(i + 1, 1))
      (dp[i + 1][1]) = max(dp[i + 1][1], dp[i][1] + 1);
    ;
    (dp[i + 1][1]) = max(dp[i + 1][1], dp[i][2] + 1);
    ;
    (dp[i + 2][2]) = max(dp[i + 2][2], dp[i][1] + 1);
    ;
  }
  cout << max(dp[N][1], dp[N][2]) << "\n";
}
