#include using namespace std; using ll = long long; using ld = long double; #define rep(i, a, b) fo(int i = a; i < (b); ++i) #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() typedef pair pii; typedef vector vi; string s; ll findBack(ll end, ll start) { for(; end > start; end--) if(s[end] == s[end-1]) return end; return -1; } ll findStart(ll start, ll end) { for(; start < end; start++) if(s[start] == s[start+1]) return start; return -1; } void fix() { ll start = 0, end = s.size() -1; ll moves = 0; while(start<= end) { ll a = findStart(start, end); if(a == -1) { cout << moves << endl; return; } ll b = findBack(end, a); if(b == -1) { cout << moves +1 << endl; return; } moves++; start = a+1; end = b-1; } cout << moves << endl; } int main() { cin.tie(0)->sync_with_stdio(0); cin.exceptions(cin.failbit); cin >> s; fix(); }