#include <bits/stdc++.h>
using namespace std;
map<string, int> memo;
int search(string s) {
  auto itr = memo.find(s);
  if (itr != memo.end()) {
    return (*itr).second;
  }
  vector<string> v;
  int len = s.length();
  for (int i = 0; i < len - 1; i++) {
    if (s[i] != s[i + 1]) {
      string sl = "", sr = "";
      if (i > 0) {
        sl = s.substr(0, i);
      }
      if (i < len - 2) {
        sr = s.substr(i + 2, len - i - 2);
      }
      v.push_back(sl + sr);
    }
  }
  if (v.size() == 0) {
    return s.length();
  }
  int ans = len;
  for (vector<string>::iterator i = v.begin(); i != v.end(); i++) {
    int x = search(*i);
    if (x < ans) {
      ans = x;
    }
  }
  memo[s] = ans;
  return ans;
}
int main() {
  string s;
  cin >> s;
  long long ans = s.length() - search(s);
  cout << ans << endl;
}
