// 誤解法 #include #include #define rep2(i,k,n) for(i64 i=(i64)(k);i<(i64)(n);i++) #define rep(i,n) rep2(i,0,n) #define all(x) begin(x),end(x) #ifdef ENV_LOCAL #define dump if (1) cerr #else #define dump if (0) cerr #endif using namespace std; using namespace std::string_literals; using i32 = int32_t; using i64 = int64_t; using f64 = double; using f80 = long double; using vi32 = vector; using vi64 = vector; //using namespace harudake; i32 solve(const string& s) { regex pon("pon"); auto tmp = s; while (true) { auto nxt = regex_replace(tmp, pon, ""); if (nxt == tmp) break; tmp = nxt; } return (size(s) - size(tmp)) / 3; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); i32 n; cin>>n; string s; cin>>s; i32 ans = -1; rep2(i,1,n-1) { i32 l = solve(s.substr(0,i)); i32 r = solve(s.substr(i)); if (l && r) ans = max(ans, l+r-2); } cout<