#include<bits/stdc++.h>
#include<algorithm>
#include<math.h>
using namespace std;
long long int lcm(long long int a,long long int b){
  long long int n;
  n=a*b/__gcd(a,b);
  return n;
}
using ll =long long int;
#define ci(a) cin>>a
#define co(a) cout<<a<<endl
#define gcd(a,b) __gcd(a,b)
#define vec vector<ll>
#define for(i,a,b) for(int i=a;i<b;i++)
#define all(a) a.begin(),a.end()
//gcd 最大公約数
//lcm 最小公倍数
//double 少数（変数）
//string 文字列（変数）
//sqrt 平方根
//ceil 天井関数
//floor 床関数
//abs 絶対値
//pow 累乗
//cbrt  立方根
//hypot 平方和の平方根
//sort 降順
//reverse 逆順
 
int main() {
  string a;
  ci(a);
  ll k=a.size();
  ll j=0;
  ll u=0;
  for(i,1,a.size()){
    if(a[i-1]==a[i])
      j++;
    else{
      k-=(j+2)/3;
      if(j%3==1){
        j=0;
        u++;
        continue;
      }
      j=0;
      u=0;
    }
    if(i==a.size()-1){
      k-=(j+2)/3;
      if(u>0)
        k+=(u+1)/2;
    }
  }
  co(k);
}