#P15689. [ICPC 2023 Jakarta R] Twin Friends

[ICPC 2023 Jakarta R] Twin Friends

说明

你遇到了两位新朋友,他们是一对双胞胎。哥哥的名字是 AA,由 NN 个字符组成。弟弟的名字是 BB,由 MM 个字符组成。已知 NMN \leq M

你想给他们每人取一个昵称。对于哥哥,你可以任选 AA 的一个排列作为昵称。对于弟弟,你可以从 BB 的任意一个排列中恰好删除 MNM-N 个字符,得到昵称。分别记哥哥和弟弟的昵称为 AA'BB'

你希望昵称满足以下要求:对于每一个 1iN1 \leq i \leq NBiB'_i 必须等于 AiA'_i 或者字母表中紧跟在 AiA'_i 之后的那个字母(如果存在的话)。

请你计算满足要求的不同昵称对 (A,B)(A', B') 的数量。如果至少有一个昵称不同,则认为两个昵称对不同。由于答案可能很大,请输出答案对 998244353998\,244\,353 取模后的结果。

输入格式

第一行包含两个整数 NNMM1NM2000001 \leq N \leq M \leq 200\,000)。

第二行包含一个长度为 NN 的字符串 AA

第三行包含一个长度为 MM 的字符串 BB

所有字符串均由大写英文字母组成。

输出格式

输出一个整数,表示满足条件的不同昵称对 (A,B)(A', B') 的数量,对 998244353998\,244\,353 取模。

3 4
AMA
ANAB
9
5 8
BINUS
BINANUSA
120
15 30
BINUSUNIVERSITY
BINANUSANTARAUNIVERSITYJAKARTA
151362308
4 4
UDIN
ASEP
0

提示

样例输入输出 1 说明

99 对昵称分别为:

  • (AAM, AAN),
  • (AAM, ABN),
  • (AAM, BAN),
  • (AMA, ANA),
  • (AMA, ANB),
  • (AMA, BNA),
  • (MAA, NAA),
  • (MAA, NAB),
  • (MAA, NBA)。

样例输入输出 2 说明

120120 对昵称是所有 AA' 是 BINUS 的排列且 B=AB' = A' 的情况。

由 ChatGPT 4.1 翻译