总共有 $N + M$ 个颜色可变的球,编号在 $0$ 到 $10^9$ 之间(含边界)。其中,$N$ 个球具有固定的红色或黑色(称为有色球),$M$ 个球具有开放颜色。
当一个开放颜色的球被放入装有至少一个有色球的容器中时,它会转变为红色或黑色。具体来说,该开放颜色球会转变为容器中编号与该球编号最接近(即绝对差值最小)的有色球的颜色。如果存在两个有色球的编号与该开放颜色球编号的绝对差值相同,则该开放颜色球会转变为编号较小的那个有色球的颜色。
例如,假设容器中有 $4$ 个有色球:$(3, \text{red}), (6, \text{black}), (12, \text{red}), (14, \text{black})$。如果我们放入一个 $(9, \text{open})$ 球,它会变为黑色,因为 $(6, \text{black})$ 是容器中编号与 $(9, \text{open})$ 最接近的有色球。此后,容器中变为 $5$ 个有色球:$(3, \text{red}), (6, \text{black}), (9, \text{black}), (12, \text{red}), (14, \text{black})$。接下来,如果我们放入一个 $(10, \text{open})$ 球,它会变为黑色,因为 $(9, \text{black})$ 是容器中编号与 $(10, \text{open})$ 最接近的有色球。此后,容器中变为 $6$ 个有色球:$(3, \text{red}), (6, \text{black}), (9, \text{black}), (10, \text{black}), (12, \text{red}), (14, \text{black})$。在这个例子中,容器最终包含 $6$ 个有色球,其中 $2$ 个红色球和 $4$ 个黑色球。
注意,如果我们以不同的顺序放入开放颜色的球,最终结果可能会不同。在上面的例子中,如果我们先放入 $(10, \text{open})$ 再放入 $(9, \text{open})$,容器最终将包含 $4$ 个红色球和 $2$ 个黑色球。
给定容器中的 $N$ 个有色球和 $M$ 个开放颜色的球,你的任务是确定有多少种放入所有开放颜色球的顺序,使得容器最终的红色球数量严格多于黑色球数量。如果两种放入顺序中,第 $i$ 个放入的开放颜色球不同,则视为两种不同的方式。注意,你只能一个接一个地将开放颜色的球放入容器。
输入格式
输入的第一行包含两个整数:$N$ 和 $M$ ($1 \le N, M \le 50$),分别表示有色球的数量和开放颜色球的数量。接下来的 $N$ 行,每行包含一个整数和一个字符串:$A_i, S_i$ ($0 \le A_i \le 10^9; S_i \in \{\text{RED, BLACK}\}$),分别表示第 $i$ 个球的编号和颜色。 最后一行包含 $M$ 个整数:$B_i$ ($0 \le B_i \le 10^9$),表示开放颜色球的编号。 保证没有任何球(无论是有色球还是开放颜色球)具有相同的编号,即 $|A \cup B| = N + M$,其中 $A$ 是所有有色球编号的集合,$B$ 是所有开放颜色球编号的集合。
输出格式
输出一行一个整数,表示使得容器最终红色球数量严格多于黑色球数量的放入方式总数,结果对 $998\,244\,353$ 取模。
样例
样例输入 1
2 3 1 BLACK 10 RED 2 5 7
样例输出 1
3
说明 1
有 $3$ 种放入开放颜色球的方式使得容器最终红色球多于黑色球: $(2, \text{open}), (7, \text{open}), (5, \text{open}) \to 3$ 个红色球和 $2$ 个黑色球 $(7, \text{open}), (2, \text{open}), (5, \text{open}) \to 3$ 个红色球和 $2$ 个黑色球 * $(7, \text{open}), (5, \text{open}), (2, \text{open}) \to 3$ 个红色球和 $2$ 个黑色球
样例输入 2
2 3 1 RED 10 BLACK 2 4 7
样例输出 2
6
说明 2
无论如何放入所有开放颜色球,容器最终总是会有更多的红色球。