# 문자열 교환 import sys input = sys.stdin.readline def solution(): s = input().rstrip() k = s.count("a") k_count = {"a": s[:k].count("a"), "b": s[:k].count("b")} circle = s + s result = k_count["b"] for i in range(1, len(circle)-k): k_count[circle[i-1]] -= 1 k_count[circle[i+k-1]] += 1 result = min(result, k_count["b"]) print(result) return solution() """ 걸린 시간: 못 품 시간 복잡도: 전체에서 a의 개수(k)를 세고, k구간씩 옮겨가며 b개수를 슬라이딩 윈도우로 업데이트하기 때문에 전체 시간복잡도는 O(n)이다. 해설: 원형이라고 했기 때문에 같은 것 2배를 해준 문자열을 만든다. 여기서 기존 a가 다 연속이면 되기 때문에 a의 개수 k를 구해서 원형에서 k구간씩 확인하며 b를 다 빼주면 되는데, 이때 b개수의 최소값이 답이다. """