n = int(input()) s = input().strip() # Initialize DP table INF = -float('inf') dp = [[INF] * 7 for _ in range(n + 1)] dp[0][0] = 0 # start at position 0 with state 0 (no characters matched) for i in range(n + 1): for state in range(7): if dp[i][state] == INF: continue # Option 1: Do not select a "pon" substring starting at i if i < n: current_char = s[i] new_state = state if state < 6: required = "ponpon"[state] if current_char == required: new_state = state + 1 if dp[i + 1][new_state] < dp[i][state]: dp[i + 1][new_state] = dp[i][state] # Option 2: Select a "pon" substring starting at i if possible if i + 2 < n: if s[i] == 'p' and s[i+1] == 'o' and s[i+2] == 'n': new_i = i + 3 new_count = dp[i][state] + 1 if new_i <= n and dp[new_i][state] < new_count: dp[new_i][state] = new_count max_k = dp[n][6] if max_k != INF: print(max_k) else: print(-1)