#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000000 + 5;
int dp[maxn][3];
int work(string a) {
  int n = a.size();
  if (n == 0) return 1;
  a = a + "0";
  n = a.size();
  dp[0][0] = 0;
  dp[0][1] = 1;
  dp[0][2] = 0;
  for (int i = 1; i < n; i++) {
    if (a[i] != a[i - 1]) {
      dp[i][0] = max(max(dp[i - 1][0], dp[i - 1][1]), dp[i - 1][2]);
      dp[i][1] = dp[i - 1][0] + 1;
      dp[i][2] = 0;
    } else {
      dp[i][0] = dp[i - 1][0];
      dp[i][1] = dp[i - 1][0] + 1;
      dp[i][2] = max(dp[i - 1][1], dp[i - 1][2]);
    }
  }
  return max(dp[n - 1][0], max(dp[n - 1][1], dp[n - 1][2]));
}
int main(int argc, char *argv[]) {
  string str;
  cin >> str;
  int n = str.size();
  int i = n - 1;
  while (i > 0 && str[i] == str[0]) i--;
  if (i == 0) {
    cout << 1 << endl;
    return 0;
  }
  str = str.substr(i + 1) + str.substr(0, i + 1);
  n = str.size();
  i = n - 1;
  while (str[i] == str[n - 1]) i--;
  int ans = max(work(str.substr(0, i)), work(str.substr(1, n - 2)));
  cout << ans << endl;
  return 0;
}
