#arc093d. [arc093_d]Dark Horse
[arc093_d]Dark Horse
問題文
人の選手がおり、それぞれ の番号がついています。 これらの選手でトーナメントを行うことにしました。
トーナメントは以下のようにして行われます。
- の置換 を選ぶ。
- 選手たちが選手 , 選手 , , 選手 の順に一列に並ぶ。
- 列に残っている選手が 人だけになるまで、以下を繰り返す。
- 列の前から 番目と 番目、 番目と 番目、 の選手が対戦を行う。 負けた選手は列から離れる。勝った選手たちは相対順序を保ったまま改めて一列に並ぶ。
- 最後まで残った選手が優勝である。
人の選手が対戦したときの結果は、入力として与えられる 個の 整数 を用いて以下のように書けることが分かっています。
- ある について のとき、選手 と選手 () が対戦すると選手 が勝つ。
- どの についても のとき、選手 と選手 () が対戦すると選手 が勝つ。
- のとき、選手 と選手 が対戦すると選手 が勝つ。
このトーナメントの優勝者は、最初に選ぶ置換 だけに依存します。 トーナメントを行う際に最初に選ぶ置換 であって、 トーナメントの結果選手 が優勝するようなものの個数を で割ったあまりを求めてください。
制約
- ()
- ()
入力
入力は以下の形式で標準入力から与えられる。
出力
答えを出力せよ。
入力例 1
2 1
3
出力例 1
8
条件を満たす としては \[1, 4, 2, 3\] や \[3, 2, 1, 4\] などが、条件を満たさない としては \[1, 2, 3, 4\] や \[1, 3, 2, 4\] などがあります。
入力例 2
4 3
2 4 6
出力例 2
0
入力例 3
3 0
出力例 3
40320
入力例 4
3 3
3 4 7
出力例 4
2688
入力例 5
16 16
5489 5490 5491 5492 5493 5494 5495 5497 18993 18995 18997 18999 19000 19001 19002 19003
出力例 5
816646464