問題文
非負整数 x,k に対して,x の 10k の位とは,bigllfloorfracx10kbigrrfloor を 10 で割った余りのことをいいます.例えば 123 の 100, 101, 102, 103 の位はそれぞれ 3,2,1,0 です.
正整数 N,M,K および非負整数列 A=(A1,ldots,AN), B=(B1,ldots,BN) が与えられます.
次の手順によって A を並べ替えることを考えます.
- 次を M 回行う:
- 0leqkleqK−1 となる整数 k をひとつ選ぶ.
- その後,A を 10k の位に関して安定ソートする.つまり,d=0,1,ldots,9 に対して,A の部分列 A(d) を A の要素のうち 10k の位が d であるようなもの全体として定め,A(0),A(1),ldots,A(9) をこの順に連結してできる列で A を置き換える.
このような手順は KM 通りありますが,その結果 A が B に等しくなるものの個数を 998244353 で割った余りを求めてください.
制約
- 1leqNleq2times105
- 1leqMleq109
- 1leqKleq18
- 0leqAi<10K
- 0leqBi<10K
- A と B は多重集合として一致する.つまり任意の整数 x に対して,x が A に現れる回数は x が B に現れる回数と一致する.
入力
入力は以下の形式で標準入力から与えられます.
N M K
A1 ldots AN
B1 ldots BN
出力
A が B に等しくなるような手順の個数を 998244353 で割った余りを出力してください.
入力例 1
3 2 3
74 42 54
42 54 74
出力例 1
5
1 回目に選ぶ k を k1,2 回目に選ぶ k を k2 とします.例えば k1=0,k2=1 のとき A は次のように変化します.
- 10k1=100 の位に関する安定ソートにより,A は (42,74,54) になる.
- 10k2=101 の位に関する安定ソートにより,A は (42,54,74) になる.
すべての手順および,その結果の A は以下の通りです:
- (k1,k2)=(0,0):A=(42,74,54).
- (k1,k2)=(0,1):A=(42,54,74).
- (k1,k2)=(0,2):A=(42,74,54).
- (k1,k2)=(1,0):A=(42,54,74).
- (k1,k2)=(1,1):A=(42,54,74).
- (k1,k2)=(1,2):A=(42,54,74).
- (k1,k2)=(2,0):A=(42,74,54).
- (k1,k2)=(2,1):A=(42,54,74).
- (k1,k2)=(2,2):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
4100 通りの手順すべてが条件を満たします.