#include using namespace std; #define REP(i,a,b) for(int i=a;i<(int)b;i++) #define rep(i,n) REP(i,0,n) #define all(c) (c).begin(), (c).end() #define zero(a) memset(a, 0, sizeof a) #define minus(a) memset(a, -1, sizeof a) #define watch(a) { cout << #a << " = " << a << endl; } template inline bool minimize(T1 &a, T2 b) { return b < a && (a = b, 1); } template inline bool maximize(T1 &a, T2 b) { return a < b && (a = b, 1); } typedef long long ll; int const inf = 1<<29; int main() { string S; cin >> S; int N = S.size(); assert(3 <= N && N <= 100000); int ccnt = 0, wcnt = 0; rep(i, N) { if(wcnt && S[i] == 'c') assert(false && "w...c..."); ccnt += S[i] == 'c'; wcnt += S[i] == 'w'; assert(S[i] == 'c' || S[i] == 'w'); } assert(ccnt >= 2); assert(wcnt >= 1); // assert(S.find("ccw") != string::npos); if(S == "ccw") { cout << 0 << endl; } else { cout << min(count(S.begin(), S.end(), 'c') - 1, count(S.begin(), S.end(), 'w')) << endl; } return 0; }