#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
ll MOD= 1000000007;
map <pair< ll,ll > ,int> mp;
#define fori(it, x) for (__typeof((x).begin()) it = (x).begin(); it != (x).end(); it++)
ll x0,ym,x1,ymm,n,r,a,b;
int BFS(ll x,ll y);
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    string s;
    cin>>s;
    int ult=0;
    int n=s.length();
    int left[n];
    int right[n];
    for(int i=0;i<n;i++)
        {left[i]=i-1;right[i]=i+1;}
    int start=0,lind=0,rind=n-1;
    int rightcmp[n]={0};
    while(1)
    {
        ult++;int i;
        ll s0=start;
        for(i=start;right[i]!=n;i=right[i])
        {
            if(i==s0 && s[i]!=s[right[i]])
            {
                start=right[i];
            }
            else if(i==s0 && s[i]==s[right[i]])
                lind=i;
            else if(i==start && s[i]==s[right[i]] && s[i]==s[left[i]])
                {lind=i;left[i]=-1;}
            else if(i==start)
                start=right[i];
            else if(i!=start && s[i]==s[right[i]] && s[i]==s[left[i]])
            {
                right[lind]=i;
                left[i]=lind;
                lind=i;
            }
        }
        if(s[i]==s[left[i]])
        {
            right[lind]=i;
            left[i]=lind;
            lind=i;
        }
        else
        {
            right[lind]=n;
        }
        if(start==rind)
        {
            cout<<ult<<endl;
            return 0;
        }
        rind=lind;
        lind=start;
        int flag=0;
        for(int i=0;i<n;i++)
        {
            if(right[i]!=rightcmp[i])
            {
                flag=1;
                break;
            }
        }
        if(flag==0 && s0==start)
            break;
        for(int i=0;i<n;i++)
            rightcmp[i]=right[i];
        // cout<<start<<endl;
        // for(int i=0;i<n;i++)
        //     cout<<left[i]<<" ";
        // cout<<endl;
        // for(int i=0;i<n;i++)
        //     cout<<right[i]<<" ";


    }
    cout<<ult-1<<endl;
    
}