/*
ID: andrew42
LANG: JAVA
TASK: 
PROG: 
*/

import java.io.*;
import java.util.*;
import java.lang.*;

public class colorful {
	public static void main(String[] args) throws IOException {
		Scanner input = new Scanner(System.in);
		String str = input.next();
		StringBuilder sb = new StringBuilder(str);
		ArrayList<Interval> ints = new ArrayList<Interval>();
		for (int i = 0; i < str.length()-1; i++){
			if (str.charAt(i) != str.charAt(i+1)){
				ints.add(new Interval(i,i+1));
			}
		}
		int ind = 0;
		int numOps = 0;
		while (ind < ints.size()-1){
			Interval one = ints.get(ind);
			Interval two = ints.get(ind+1);
			if (one.r >= two.l-1){
				ints.set(0, new Interval(ints.get(0).l,ints.get(1).r));
				ints.remove(1);
			} else {
				ind++;
			}
		}
		numOps++;
		boolean op = true;
		while (op){
			op = false;
			for (int i = 0; i < ints.size(); i++){
				if (ints.get(i).l == 0 || ints.get(i).r == str.length()-1)
					continue;
				if (str.charAt(ints.get(i).l-1) != str.charAt(ints.get(i).r+1)){
					op = true;
					ints.set(i, new Interval(ints.get(i).l-1,ints.get(i).r+1));
					if (i!= ints.size()-1 && ints.get(i).r+1 == ints.get(i+1).l){
						if (str.charAt(ints.get(i).r) != str.charAt(ints.get(i).r+1)){
							if (str.charAt(ints.get(i+1).l-1) != str.charAt(ints.get(i+1).r+1)){
								ints.set(i, new Interval(ints.get(i).l,ints.get(i+1).r+1));
							} else {
								ints.set(i, new Interval(ints.get(i).l,ints.get(i+1).r));
							}
							ints.remove(i+1);
						}
					}
				} else {
					if (i!= ints.size()-1 && ints.get(i).r+2 == ints.get(i+1).l){
						if (str.charAt(ints.get(i).r+2) != str.charAt(ints.get(i).r+1)){
							op = true;
							if (str.charAt(ints.get(i+1).l-1) != str.charAt(ints.get(i+1).r+1)){
								ints.set(i, new Interval(ints.get(i).l,ints.get(i+1).r+1));
							} else {
								ints.set(i, new Interval(ints.get(i).l,ints.get(i+1).r));
							}
							ints.remove(i+1);
						}
					}
				}
			}
			if (op)
				numOps++;
		}
		System.out.println(numOps);
		
	}
	public static class Interval {
		int l,r;
		public Interval (int left, int right){
			l = left; r = right;
		}
	}
}
