Chef is a brilliant university student that does not attend lectures because he believes that they are boring and coding is life! However, his university follows certain rules and regulations, and a student may only take an exam for a course if he has attended at least 75% of lectures for this course.
Since you are Chef's best friend, you want to help him reach the attendance he needs to take exams. Unfortunately, Chef is still focused on his code and refuses to attend more lectures, so the only option is to have some of his friends mark him as present by proxy. This trick is well-known in the university, but only few have the talent to pull it off.
In a certain course, there is exactly one lesson per day over the course of $D$ days (numbered $1$ through $D$). You are given a string $S$ with length $D$ describing the lessons Chef attended — for each valid $i$, the $i$-th character of this string is either 'A' if Chef was absent on day $i$ or 'P' if Chef was actually present on day $i$.
For each day $d$ when Chef is absent, one of Chef's friends can mark him as present by proxy on this day only if he was present (if he was really present, not just marked as present) on at least one of the previous two days, i.e. days $d-1$ and $d-2$, and on at least one of the following two days, i.e. days $d+1$ and $d+2$. However, it is impossible to mark him as present by proxy on the first two days and the last two days.
Find the minimum number of times Chef has to be marked as present by proxy so that his attendance becomes at least 75% ($0.75$). Chef's attendance is number of days when he was marked as present, either by proxy or by actually being present, divided by $D$.

-----Input-----
- The first line of the input contains a single integer $T$ denoting the number of test cases. The description of $T$ test cases follows.
- The first line of each test case contains a single integer $D$.
- The second line contains a single string $S$ with length $D$.

-----Output-----
For each test case, print a single line containing one integer — the minimum number of times Chef needs to be marked as present by proxy, or $-1$ if it is impossible to make Chef achieve 75% attendance.

-----Constraints-----
- $1 \le T \le 200$
- $1 \le D \le 1,000$
- $S$ contains only characters 'A' and 'P'

-----Subtasks-----
Subtask #1 (100 points): original constraints

-----Example Input-----
1
9
PAAPPAPPP

-----Example Output-----
1

-----Explanation-----
Example case 1: With a proxy on the third day, the attendance string is "PAPPPAPPP". Now, Chef's attendance is at least 75%, so the minimum number of times Chef needs to be marked as present by proxy is $1$.

Difficulty: interview

Starter code:

Solutions:
# cook your dish here
def ceil(num):
 if num%1==0:
  return int(num//1)
 else:
  return int((num//1)+1)
 
for _ in range(int(input())):
 n=int(input())
 s=input()
 p=0
 a=[]
 for i in range(n):
  if s[i]=="P":
   p=p+1
 req=ceil(0.75*n)
 requirement=req-p
 for i in range(2,n-2):
  if s[i]=="A":
   if (s[i-1]=="P" or s[i-2]=="P") and (s[i+1]=="P" or s[i+2]=="P"):
    a.append(i)
 if requirement>len(a):
  print(-1)
 else:
  print(max(requirement,0))

# cook your dish here
import math
for t in range(int(input())):
 d=int(input())
 s=input()
 k=math.ceil(75*d/100)
 p=s.count("P")
 if k<=p:
  print(0)
 else:
  req=k-p
  c=0
  for i in range(2,d-2):
   if s[i]=="A":
    if "P" in s[i-2:i+1] and "P" in s[i+1:i+3]:
     c+=1
   if c==req:
    print(c)
    break
  else:
   print(-1)

# cook your dish here
from collections import Counter
from math import ceil
for _ in range(int(input())):
 
 d=int(input())
 s=input()
 c=Counter(s)
 
 re=ceil(0.75*d)
 ans=0
 if c['P']>=re:
  print(ans)
  continue
 
 for i in range(2,d-2):
  
  if s[i]=='A':
   
   if (s[i-2]=='P' or s[i-1]=='P') and (s[i+2]=='P' or s[i+1]=='P'):
    c['P']+=1
    ans+=1
    
   if c['P']>=re:
    print(ans)
    break
    
 else:
  print(-1)