#arc158f. [arc158_f]Random Radix Sort

[arc158_f]Random Radix Sort

问题描述

对于非负整数 xxkkxx 的第 kk 个最低位是当 bigllfloorfracx10kbigrrfloor\\bigl\\lfloor \\frac{x}{10^k}\\bigr\\rfloor1010 除的余数。例如,123123 的第 00 个、第 11 个、第 22 个和第 33 个最低位分别为 33221100

给定正整数 NNMMKK,以及非负整数序列 A=(A1,ldots,AN)A = (A_1, \\ldots, A_N)B=(B1,ldots,BN)B = (B_1, \\ldots, B_N)

考虑按照以下过程重新排列 AA

  • 重复以下步骤 MM 次。
    • 选择一个整数 kk,满足 0leqkleqK10\\leq k \\leq K - 1
    • 然后,按照第 kk 个最低位对 AA 进行稳定排序。也就是说,令 A(d)A^{(d)} 是由 AA 中所有第 kk 个最低位为 dd 的元素组成的子序列,并用 A(0),A(1),ldots,A(9)A^{(0)}, A^{(1)}, \\ldots, A^{(9)} 按此顺序替换 AA

执行此过程有 KMK^M 种方式。其中有多少种方式使得 AA 等于 BB?将计数结果对 998244353998244353 取模。

约束条件

  • 1leqNleq2times1051\\leq N\\leq 2\\times 10^5
  • 1leqMleq1091\\leq M\\leq 10^9
  • 1leqKleq181\\leq K\\leq 18
  • 0leqAi<10K0\\leq A_i < 10^K
  • 0leqBi<10K0\\leq B_i < 10^K
  • AABB 是相等的多重集合。也就是说,每个整数 xxAABB 中出现的次数相同。

输入

输入以以下格式从标准输入中给出:

NN MM KK A1A_1 ldots\\ldots ANA_N B1B_1 ldots\\ldots BNB_N

输出

打印从过程中使得 AA 等于 BB 的方式数,对 998244353998244353 取模后的结果。


示例输入1

3 2 3
74 42 54
42 54 74

示例输出1

5

k1k_1k2k_2 分别是第一次和第二次迭代选择的 kk。例如,如果 k1=0k_1 = 0k2=1k_2 = 1,则 AA 的变化如下。

  • 按照第 k1k_1 个(第 00 个)最低位进行稳定排序,使得 A=(42,74,54)A = (42,74,54)
  • 按照第 k2k_2 个(第 11 个)最低位进行稳定排序,使得 A=(42,54,74)A = (42,54,74)

下面是执行该过程和得到的 AA 的所有方式。

  • (k1,k2)=(0,0)(k_1, k_2) = (0,0): A=(42,74,54)A = (42,74,54)
  • (k1,k2)=(0,1)(k_1, k_2) = (0,1): A=(42,54,74)A = (42,54,74)
  • (k1,k2)=(0,2)(k_1, k_2) = (0,2): A=(42,74,54)A = (42,74,54)
  • (k1,k2)=(1,0)(k_1, k_2) = (1,0): A=(42,54,74)A = (42,54,74)
  • (k1,k2)=(1,1)(k_1, k_2) = (1,1): A=(42,54,74)A = (42,54,74)
  • (k1,k2)=(1,2)(k_1, k_2) = (1,2): A=(42,54,74)A = (42,54,74)
  • (k1,k2)=(2,0)(k_1, k_2) = (2,0): A=(42,74,54)A = (42,74,54)
  • (k1,k2)=(2,1)(k_1, k_2) = (2,1): A=(42,54,74)A = (42,54,74)
  • (k1,k2)=(2,2)(k_1, k_2) = (2,2): A=(74,42,54)A = (74,42,54)

示例输入2

2 1 1
2 3
3 2

示例输出2

0

没有满足条件的方式。


示例输入3

5 100 4
0 12 34 56 78
0 12 34 56 78

示例输出3

982924732

所有 41004^{100} 种方式都满足条件。