#bitflyer2018finalg. [bitflyer2018_final_g]Following Permutations
[bitflyer2018_final_g]Following Permutations
問題文
整数 および 個の整数の つ組 () が与えられます。 の置換 であって、すべての () に対して以下の条件を満たすものの個数を で割ったあまりを求めてください。
- 長さ の置換をすべて辞書順に並べたとき の 個あとにあたる置換 q = \[q_1, q_2, ..., q_N\] が存在し、 である。
なお、上の条件において、 のとき は 自身であるとします。
制約
- ()
- ()
- ()
- のとき、 または または
入力
入力は以下の形式で標準入力から与えられる。
出力
答えを出力せよ。
入力例 1
3 1
1 2 2
出力例 1
1
の置換をすべて辞書順に並べると \[1, 2, 3\], \[1, 3, 2\], \[2, 1, 3\], \[2, 3, 1\], \[3, 1, 2\], \[3, 2, 1\] となります。 このうち条件を満たす置換は \[3, 1, 2\] だけです。
入力例 2
10 2
10 10 10
11 10 10
出力例 2
0
入力例 3
20 2
0 1 1
50 1 2
出力例 3
50
入力例 4
50 0
出力例 4
318608048
入力例 5
30 5
27 18 22
43 19 26
27 26 13
22 9 27
31 20 12
出力例 5
440732388