s = input()
n = len(s)
s += s
ans, idx = 0, 0
while idx < n:
st = idx
idx += 1
while idx < st + n and s[idx] != s[idx - 1]:
idx += 1
ans = max(ans, idx - st)
print(ans)
/* Quick Note :
* Jangan Mikir Lama - lama, sampahin dulu aja kalo OI
* Always Try to reset
*/
#include <bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
#define debug(val) cerr << "The value of " << #val << " is = " << val << '\n';
typedef long double ld;
typedef long long ll;
typedef unsigned long long ull;
const ld PI = 4*atan((ld)1);
const ll mod = 1e9 + 7;
const ll inf = 922337203685477;
const ll nax = 0;
string s;
int main(){
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
//freopen("test.in", "r", stdin);
//freopen("test.out", "w", stdout);
cin >> s;
ll cnt = 1;
ll ans = 1;
for(ll i = 1; i < 2 * s.size(); i++){
char idx = '0';
if(i >= s.size()){
idx = s[i-s.size()];
}
else idx = s[i];
char bfr = '0';
if(i - 1 >= s.size()){
bfr = s[i-s.size()-1];
}
else bfr = s[i-1];
if(idx == bfr){
ans = max(ans, cnt);
cnt = 1;
}
else cnt++;
}
ans = max(ans, cnt);
ans = min(ans, (ll)s.size());
cout << ans << '\n';
}
402. Remove K Digits | 97. Interleaving String |
543. Diameter of Binary Tree | 124. Binary Tree Maximum Path Sum |
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts | 501A - Contest |
160A- Twins | 752. Open the Lock |
1535A - Fair Playoff | 1538F - Interesting Function |
1920. Build Array from Permutation | 494. Target Sum |
797. All Paths From Source to Target | 1547B - Alphabetical Strings |
1550A - Find The Array | 118B - Present from Lena |
27A - Next Test | 785. Is Graph Bipartite |
90. Subsets II | 1560A - Dislike of Threes |
36. Valid Sudoku | 557. Reverse Words in a String III |
566. Reshape the Matrix | 167. Two Sum II - Input array is sorted |
387. First Unique Character in a String | 383. Ransom Note |
242. Valid Anagram | 141. Linked List Cycle |
21. Merge Two Sorted Lists | 203. Remove Linked List Elements |