G. Stones 2
time limit per test
4 seconds
memory limit per test
1024 megabytes
input
standard input
output
standard output

$$$N$$$ stones labeled from $$$1$$$ to $$$N$$$ are arranged in a row in increasing order. Each stone is colored either white or black. The weight of the $$$i$$$-th stone is $$$A_i$$$.

You will remove the stones one at a time until all the stones are removed.

When removing a stone, if the stone is not the leftmost or rightmost of all remaining stones, and neither stone adjacent to the stone being removed matches it in color, your score increases by the weight of the stone being removed. Two stones are adjacent if there are no stones in between those two.

There are $$$N!$$$ possible ways to remove all the stones. Compute the sum of scores from each possible way, modulo $$$998\,244\,353$$$.

Input

The first line contains a single integer $$$N$$$ ($$$1 \le N \le 300\, 000$$$).

The second line contains a string $$$S$$$ of length $$$N$$$ where each character is either B or W. The $$$i$$$th character of $$$S$$$, $$$S_i$$$, is B if the $$$i$$$-th stone is black, otherwise, $$$S_i$$$ is W and the $$$i$$$-th stone is white.

The third line contains $$$N$$$ integers $$$A_1, A_2, \cdots, A_N$$$ ($$$1 \le A_i \le 10^9$$$). $$$A_i$$$ represents the weight of stone $$$i$$$.

Output

Output the sum of the scores over all possible ways to take the stones, modulo $$$998\,244\,353$$$.

Examples
Input
4
WBWB
6 4 5 3
Output
72
Input
8
WBBWBWBB
6 4 8 2 5 3 1 5
Output
218304