#include <bits/stdc++.h>
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int rnd(int l, int r) { return l + rng() % (r - l + 1); }
const int N = 100010;
string s;
int f[N], g[N];
int main() {
  cin >> s;
  f[1] = 1;
  g[2] = 1;
  for (int i = 1, _c = s.size(); i <= _c; ++i) {
    if (i > 1 && s[i - 1] != s[i - 2]) f[i] = f[i - 1] + 1;
    if (i > 2) {
      g[i] = f[i - 2] + 1;
      f[i] = max(f[i], g[i - 1] + 1);
    }
    if (i == (int)s.size()) {
      return cout << max(f[i], g[i]), 0;
    }
  }
}
