#include <bits/stdc++.h>
using namespace std;
int64_t MOD;
inline void normal(int64_t &a) {
  a %= MOD;
  (a < 0) && (a += MOD);
}
inline int64_t modMul(int64_t a, int64_t b) {
  a %= MOD, b %= MOD;
  normal(a), normal(b);
  return (a * b) % MOD;
}
inline int64_t modAdd(int64_t a, int64_t b) {
  a %= MOD, b %= MOD;
  normal(a), normal(b);
  return (a + b) % MOD;
}
inline int64_t modSub(int64_t a, int64_t b) {
  a %= MOD, b %= MOD;
  normal(a), normal(b);
  a -= b;
  normal(a);
  return a;
}
inline int64_t modPow(int64_t b, int64_t p) {
  int64_t r = 1;
  while (p) {
    if (p & 1) r = modMul(r, b);
    b = modMul(b, b);
    p >>= 1;
  }
  return r;
}
inline int64_t modInverse(int64_t a) { return modPow(a, MOD - 2); }
inline int64_t modDiv(int64_t a, int64_t b) { return modMul(a, modInverse(b)); }
template <typename F, typename S>
ostream &operator<<(ostream &os, const pair<F, S> &p) {
  return os << "(" << p.first << ", " << p.second << ")";
}
template <typename T>
ostream &operator<<(ostream &os, const vector<T> &v) {
  os << "{";
  typename vector<T>::const_iterator it;
  for (it = v.begin(); it != v.end(); it++) {
    if (it != v.begin()) os << ", ";
    os << *it;
  }
  return os << "}";
}
template <typename T>
ostream &operator<<(ostream &os, const set<T> &v) {
  os << "[";
  typename set<T>::const_iterator it;
  for (it = v.begin(); it != v.end(); it++) {
    if (it != v.begin()) os << ", ";
    os << *it;
  }
  return os << "]";
}
template <typename F, typename S>
ostream &operator<<(ostream &os, const map<F, S> &v) {
  os << "[";
  typename map<F, S>::const_iterator it;
  for (it = v.begin(); it != v.end(); it++) {
    if (it != v.begin()) os << ", ";
    os << it->first << " = " << it->second;
  }
  return os << "]";
}
bool check(char a, char b) {
  if (a != b) return true;
  return false;
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  ;
  int64_t t = 1;
  for (int64_t trr = 1; trr <= t; trr++) {
    string s;
    cin >> s;
    s += s;
    int64_t n = s.length();
    vector<int64_t> dp(n, 1);
    for (int64_t i = 1; i < n; i++) {
      if (check(s[i], s[i - 1])) {
        dp[i] = dp[i - 1] + 1;
        ;
      }
    }
    cout << min(n / 2, *max_element(dp.begin(), dp.end()));
  }
}
