在 Circleland 的土地上,有一个圆周,圆周上均匀分布着若干个点。任意两个相邻点之间的距离为 1。
圆周上的点分布着人、空房子或什么都没有。每个人都想走到一间不同的房子里。每间房子最多只能容纳一个人。人只能沿着圆周行走;他们不能穿过圆心。
目前,房子的数量多于人的数量,因此你需要拆除一些房子,使得剩余房子的数量等于人的数量。假设你拆除了一组房子 $S$。令 $f(S)$ 为使每个人都走到一间不同的未拆除房子所需的最少总步行距离。
计算 $f(S)$ 的最小值,并计算有多少组房子 $S$ 能达到这个最小值。由于 $S$ 的数量可能很大,请输出其对 $998\,244\,353$ 取模的结果。
输入格式
第一行包含三个整数 $x, n$ 和 $m$ ($1 \le n < m \le 2 \cdot 10^5, n + m \le x \le 10^9$),其中 $x$ 是圆周上的点数,$n$ 是人数,$m$ 是房子数。点被标记为 $1$ 到 $x$,且点 $x$ 与点 $1$ 相邻。
接下来的 $n + m$ 行,每行包含两个标记,一个整数 $p$ ($1 \le p \le x$) 和一个字符 $t$ ($t \in \{\text{P}, \text{H}\}$),其中 $p$ 表示人或房子的位置,$t$ 表示点的类型,P 代表人,H 代表房子。所有位置各不相同,且给出的位置按升序排列。
输出格式
输出两行。
第一行输出 $f(S)$ 的最小值。
第二行输出达到该最小值的房子集合 $S$ 的数量,对 $998\,244\,353$ 取模。
样例
样例输入 1
6 2 4 1 P 2 H 3 P 4 H 5 H 6 H
样例输出 1
2 3
样例输入 2
1000000000 2 4 1 P 6 H 31415926 H 999999998 H 999999999 H 1000000000 P
样例输出 2
4 1
说明
对于第一个样例,最小总步行距离为 2。我们可以拆除位于 $\{2, 5\}$、$\{4, 5\}$ 或 $\{5, 6\}$ 的房子。
对于第二个样例,我们可以拆除位于 $\{6, 31415926\}$ 的房子,得到最小总步行距离 4。注意,即使最小步行距离可以通过多种方式实现,由于拆除的房子集合相同,它也只被计数一次。