#include <bits/stdc++.h>
using namespace std;
long long recur(long long dp[], string &s, string temp, long long i) {
  if (i < -1) {
    return -2;
  }
  if (i == -1) {
    return 0;
  }
  if (dp[i] != -1) {
    return dp[i];
  }
  dp[i] = -2;
  if (temp != s.substr(i, 1)) {
    long long temps = recur(dp, s, s.substr(i, 1), i - 1);
    if (temps != -2) {
      dp[i] = max(dp[i], 1 + temps);
    }
  }
  if (i != 0 && temp != s.substr(i - 1, 2)) {
    long long temps = recur(dp, s, s.substr(i - 1, 2), i - 2);
    if (temps != -2) {
      dp[i] = max(dp[i], 1 + temps);
    }
  }
  return dp[i];
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  string s;
  cin >> s;
  long long dp[s.size()];
  memset(dp, -1, sizeof(dp));
  string temp = "";
  cout << recur(dp, s, temp, s.size() - 1);
}
