#include <bits/stdc++.h>
using namespace std;
template <typename T>
void read(T &x) {
  x = 0;
  char c;
  for (c = getchar(); !isdigit(c); c = getchar())
    ;
  for (; isdigit(c); c = getchar()) x = x * 10 + c - '0';
}
const int N = 2e5 + 50, P = 998244353;
int mul(int a, int b) { return 1ll * a * b % P; }
int add(int a, int b) {
  a += b;
  return a >= P ? a - P : a;
}
int sub(int a, int b) {
  a -= b;
  return a < 0 ? a + P : a;
}
int gcd(int a, int b) { return !b ? a : gcd(b, a % b); }
void upd(int &a, int b) { a = add(a, b); }
int powMod(int x, int k) {
  int res = 1;
  for (; k; k >>= 1, x = mul(x, x))
    if (k & 1) res = mul(res, x);
  return res;
}
int inv(int x) { return powMod(x, P - 2); }
int frac(int a, int b) { return mul(a, inv(b)); }
int ans, n;
char s[N];
int main(int argc, char *argv[]) {
  scanf("%s", s + 1);
  ans = 1;
  n = strlen(s + 1);
  for (int z = 1, i = 2; i <= n;) {
    ++ans;
    if (z == 1) {
      if (s[i] == s[i - 1]) {
        z = 2;
        i += 2;
        if (i + 1 > n) --ans;
      } else {
        z = 1, ++i;
      }
    } else {
      z = 1, ++i;
    }
  }
  printf("%d\n", ans);
  return 0;
}
