#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; int main() { int T; cin >> T; for (int t = 0; t < T; ++t) { string str; cin >> str; int N = str.size(); vector good_cnt(N, N); vector prob_cnt(N, N); for (int i = 0; i < N - 4; ++i) { int g_cnt = 0; for (int j = 0; j < 4; ++j) { int idx = i + j; if (str[idx] != "good"[j]) { g_cnt++; } } int p_cnt = 0; for (int j = 0; j < 7 && i + 6 < N; ++j) { int idx = i + j; if (str[idx] != "problem"[j]) { p_cnt++; } } good_cnt[i] = g_cnt; if (i + 6 < N) { prob_cnt[i] = p_cnt; } } int min_p_cnt = INT_MAX; vector P(N, INT_MAX); for (int i = N - 1; i >=0 ; --i) { min_p_cnt = min(min_p_cnt, prob_cnt[i]); P[i] = min_p_cnt; } int ans = INT_MAX; int found_cnt = 0; for (int i = 0; i < N - 4; ++i) { int cnt = good_cnt[i] + P[i + 4] + found_cnt; ans = min(ans, cnt); if (prob_cnt[i] == 0) { ++found_cnt; } } cout << ans << endl; } return 0; }