human
After a long party Petya decided to return home, but he turned out to be at the opposite end of the town from his home. There are n crossroads in the line in the town, and there is either the bus or the tram station at each crossroad.

The crossroads are represented as a string s of length n, where s_i = A, if there is a bus station at i-th crossroad, and s_i = B, if there is a tram station at i-th crossroad. Currently Petya is at the first crossroad (which corresponds to s_1) and his goal is to get to the last crossroad (which corresponds to s_n).

If for two crossroads i and j for all crossroads i, i+1, …, j-1 there is a bus station, one can pay a roubles for the bus ticket, and go from i-th crossroad to the j-th crossroad by the bus (it is not necessary to have a bus station at the j-th crossroad). Formally, paying a roubles Petya can go from i to j if s_t = A for all i ≤ t < j. 

If for two crossroads i and j for all crossroads i, i+1, …, j-1 there is a tram station, one can pay b roubles for the tram ticket, and go from i-th crossroad to the j-th crossroad by the tram (it is not necessary to have a tram station at the j-th crossroad). Formally, paying b roubles Petya can go from i to j if s_t = B for all i ≤ t < j.

For example, if s="AABBBAB", a=4 and b=3 then Petya needs:


  * buy one bus ticket to get from 1 to 3, 
  * buy one tram ticket to get from 3 to 6, 
  * buy one bus ticket to get from 6 to 7. 


Thus, in total he needs to spend 4+3+4=11 roubles. Please note that the type of the stop at the last crossroad (i.e. the character s_n) does not affect the final expense.

Now Petya is at the first crossroad, and he wants to get to the n-th crossroad. After the party he has left with p roubles. He's decided to go to some station on foot, and then go to home using only public transport.

Help him to choose the closest crossroad i to go on foot the first, so he has enough money to get from the i-th crossroad to the n-th, using only tram and bus tickets.

Input

Each test contains one or more...
The above is tricky. Write me a correct solution in PYTHON3.
 Can you provide a the Python program you requested?
assistant
#Here is the Python program you requested.

from sys import stdin, stdout, setrecursionlimit
#import threading

# tail-recursion optimization
# In case of tail-recusion optimized code, have to use python compiler.
# Otherwise, memory limit may exceed.
# declare the class Tail_Recursion_Optimization
class Tail_Recursion_Optimization:
    def __init__(self, RECURSION_LIMIT, STACK_SIZE):
        setrecursionlimit(RECURSION_LIMIT)
        threading.stack_size(STACK_SIZE)
        return None
        
class SOLVE:
    def solve(self):
        R = stdin.readline
        #f = open('input.txt');R = f.readline
        W = stdout.write
        
        ans = []
        
        for i in range(int(R())):
            a, b, p = [int(x) for x in R().split()]
            s = R()
            l = len(s) - 1
            
            total = 0
            ind   = []
            for j in range(l):
                if j == 0 or (j < l-1 and s[j] != s[j-1]):
                    total += [a, b][s[j] == 'B']
                    ind.append(j)
            #print(total)
            
            flg = 1
            for j in range(len(ind)):
                if total <= p:
                    ans.append(str(ind[j]+1))
                    flg = 0
                    break
                
                total -= [a, b][s[ind[j]] == 'B']
            if flg:
                ans.append(str(l))
            #print(ans)
        
        W('\n'.join(ans))
        return 0
        
def main():
    s = SOLVE()
    s.solve()
#Tail_Recursion_Optimization(10**7, 2**26) # recursion-call size, stack-size in byte
#threading.Thread(target=main).start()
main()