← Home
write a go solution for Description:
There is a hidden array a_1,a_2,ldots,a_n of length n whose elements are integers between -m and m, inclusive.

You are given an array b_1,b_2,ldots,b_n of length n and a string s of length n consisting of the characters textttP, textttS, and texttt?.

For each i from 1 to n inclusive, we must have:

- If s_i=textttP, b_i is the sum of a_1 through a_i.
- If s_i=textttS, b_i is the sum of a_i through a_n.

Output the number of ways to replace all texttt? in s with either textttP or textttS such that there exists an array a_1,a_2,ldots,a_n with elements not exceeding m by absolute value satisfying the constraints given by the array b_1,b_2,ldots,b_n and the string s.

Since the answer may be large, output it modulo 998,244,353.

Input Format:
The first line contains a single integer t (1<=t<=10^3) — the number of test cases.

The first line of each test case contains two integers n and m (2<=n<=2*10^3, 2<=m<=10^9) — the length of the hidden array a_1,a_2,ldots,a_n and the maximum absolute value of an element a_i.

The second line of each test case contains a string s of length n consisting of characters textttP, textttS, and texttt?.

The third line of each test case contains n integers b_1,b_2,ldots,b_n (|b_i|<=m*n).

The sum of n over all test cases does not exceed 5*10^3.

Output Format:
For each test case, output a single integer — the number of ways to replace all texttt? in s with either textttP or textttS that result in the existence of a valid array a_1,a_2,ldots,a_n, modulo 998,244,353.

Note:
In the first test case, we can see that the following array satisfies all constraints, thus the answer is 1:

1. textttP — [colorredtextbf1,3,4,2]: sum of 1.
2. textttS — [1,colorredtextbf3,4,2]: sum of 9.
3. textttP — [colorred1,3,textbf4,2]: sum of 8.
4. textttP — [colorred1,3,4,textbf2]: sum of 10.

In the second test case, it can be shown that no array a with all |a_i|<=m=10^9 satisfies all constraints.. Output only the code with no comments, explanation, or additional text.