#include <bits/stdc++.h>
using namespace std;
long long GCD(long long a, long long b) { return (a) ? GCD(b % a, a) : b; }
long long LCM(long long a, long long b) { return a * b / GCD(a, b); }
long long fastpow(long long b, long long p) {
  if (!p) return 1;
  long long ret = fastpow(b, p >> 1);
  ret *= ret;
  if (p & 1) ret *= b;
  return ret;
}
int n;
string str;
int dp[5001][5];
int goDP(int idx = 0, int state = 0) {
  if (idx == n || state == 4) {
    return 0;
  }
  int &ret = dp[idx][state];
  if (~ret) return ret;
  ret = 0;
  if (state == 0) {
    if (str[idx] == 'a') ret = max(ret, 1 + goDP(idx + 1, state));
  }
  if (state == 1) {
    if (str[idx] == 'b') ret = max(ret, 1 + goDP(idx + 1, state));
  }
  if (state == 2) {
    if (str[idx] == 'a') ret = max(ret, 1 + goDP(idx + 1, state));
  }
  ret = max(ret, goDP(idx, state + 1));
  ret = max(ret, goDP(idx + 1, state));
  return ret;
}
void solve() {
  cin >> str;
  n = str.length();
  memset(dp, -1, sizeof dp);
  cout << goDP();
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin.tie(0);
  ;
  int t = 1;
  while (t--) {
    solve();
    cout << "\n";
  }
}
