#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 1;
const long long M = 1e18;
stack<int> sk;
int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  string s;
  int ans = 0, first = 0;
  cin >> s;
  for (auto x : s) {
    int d = x - 'a';
    if (sk.size() && d == sk.top()) {
      int p = sk.top(), f = 0;
      sk.pop();
      while (sk.size() && sk.top() != p) {
        p = sk.top();
        sk.pop();
        first = f = 1;
      }
      if (!f) sk.push(p);
    }
    sk.push(d);
  }
  ans += first;
  while (1) {
    int first = 0;
    stack<int> st;
    while (sk.size()) {
      int d = sk.top();
      sk.pop();
      if (st.size() && d == st.top()) {
        int p = st.top(), f = 0;
        st.pop();
        while (st.size() && st.top() != p) {
          p = st.top();
          st.pop();
          first = f = 1;
        }
        if (!f) st.push(p);
      }
      st.push(d);
    }
    if (!first) break;
    ans += first;
  }
  cout << ans << endl;
}
