#P13547. [OOI 2022] Third grader's task

[OOI 2022] Third grader's task

Description

小男孩 Tyler 在厨房的冰箱上看到了一些带有符号的磁铁,这些磁铁可以拼成一个字符串 ss

Tyler 很喜欢字符串,尤其喜欢那些字典序小于字符串 tt 的字符串。玩着冰箱上的磁铁,他开始好奇:用 ss 的字母重新排列,可以组成多少个不同的字符串,使得这些字符串的字典序小于 tt?Tyler 还只读三年级,他无法回答这个问题。请你帮他计算,用 ss 的字母重新排列,字典序小于 tt 的排列有多少种。

我们称字符串 xx 的字典序小于字符串 yy,当且仅当满足以下两种情况之一:

  • 存在某个位置 mm,在此之前两个字符串完全相同,而第 mmss 的字符小于第 mmyy 的字符;
  • 字符串 xx 是字符串 yy 的前缀。

由于答案可能很大,请输出对 998244353998\,244\,353 取模的结果。

Input Format

第一行包含两个整数 nnmm1n,m2000001 \le n, m \le 200\,000),分别表示字符串 sstt 的长度。

第二行包含 nn 个整数 s1,s2,s3,,sns_1, s_2, s_3, \ldots, s_n1si2000001 \le s_i \le 200\,000),表示字符串 ss 的符号。

第三行包含 mm 个整数 t1,t2,t3,,tmt_1, t_2, t_3, \ldots, t_m1ti2000001 \le t_i \le 200\,000),表示字符串 tt 的符号。

Output Format

输出一个整数,表示可以通过重新排列 ss 的字母得到且字典序小于 tt 的字符串个数,对 998244353998\,244\,353 取模。

3 4
1 2 2
2 1 2 1
2
4 4
1 2 3 4
4 3 2 1
23
4 3
1 1 1 2
1 1 2
1

Hint

说明

在第一个样例中,应统计 [1 2 2][1\ 2\ 2][2 1 2][2\ 1\ 2] 这两个字符串。[2 2 1][2\ 2\ 1] 的字典序大于 [2 1 2 1][2\ 1\ 2\ 1],所以不计入答案。

在第二个样例中,应统计所有排列,除了 [4 3 2 1][4\ 3\ 2\ 1],所以答案是 4!1=234! - 1 = 23

在第三个样例中,只能统计 [1 1 1 2][1\ 1\ 1\ 2] 这一种。

评分说明

本题测试数据分为 6 组。只有通过某组所有测试点,且通过所有必需的前置组,才能获得该组分数。离线评测表示该组的结果在比赛结束后才能看到。注意,有些分组不要求通过样例测试点。

组别 分值 n,mn, m si,tis_i, t_i 必须通过的组 备注
0 --
1 16 n,m10n, m \le 10 si,ti10s_i, t_i \le 10 0
2 15 -- si,ti2s_i, t_i \le 2 --
3 11 si,ti20s_i, t_i \le 20 0--2
4 13 si,ti200s_i, t_i \le 200 0--3
5 12 -- -- 每个字符串内部所有字符均不同
6 33 0--5 离线评测