#arc093d. [arc093_d]Dark Horse

[arc093_d]Dark Horse

問題文

2N2^N 人の選手がおり、それぞれ 1,2,...,2N1, 2, ..., 2^N の番号がついています。 これらの選手でトーナメントを行うことにしました。

トーナメントは以下のようにして行われます。

  • 1,2,...,2N1, 2, ..., 2^N の置換 p1,p2,...,p2Np_1, p_2, ..., p_{2^N} を選ぶ。
  • 選手たちが選手 p1p_1, 選手 p2p_2, ......, 選手 p2Np_{2^N} の順に一列に並ぶ。
  • 列に残っている選手が 11 人だけになるまで、以下を繰り返す。
    • 列の前から 11 番目と 22 番目、33 番目と 44 番目、...... の選手が対戦を行う。 負けた選手は列から離れる。勝った選手たちは相対順序を保ったまま改めて一列に並ぶ。
  • 最後まで残った選手が優勝である。

22 人の選手が対戦したときの結果は、入力として与えられる MM 個の 整数 A1,A2,...,AMA_1, A_2, ..., A_M を用いて以下のように書けることが分かっています。

  • ある ii について y=Aiy = A_i のとき、選手 11 と選手 yy (2leqyleq2N2 \\leq y \\leq 2^N) が対戦すると選手 yy が勝つ。
  • どの ii についても yneqAiy \\neq A_i のとき、選手 11 と選手 yy (2leqyleq2N2 \\leq y \\leq 2^N) が対戦すると選手 11 が勝つ。
  • 2leqx<yleq2N2 \\leq x < y \\leq 2^N のとき、選手 xx と選手 yy が対戦すると選手 xx が勝つ。

このトーナメントの優勝者は、最初に選ぶ置換 p1,p2,...,p2Np_1, p_2, ..., p_{2^N} だけに依存します。 トーナメントを行う際に最初に選ぶ置換 p1,p2,...,p2Np_1, p_2, ..., p_{2^N} であって、 トーナメントの結果選手 11 が優勝するようなものの個数を 109+710^9 + 7 で割ったあまりを求めてください。

制約

  • 1leqNleq161 \\leq N \\leq 16
  • 0leqMleq160 \\leq M \\leq 16
  • 2leqAileq2N2 \\leq A_i \\leq 2^N (1leqileqM1 \\leq i \\leq M)
  • Ai<Ai+1A_i < A_{i + 1} (1leqi<M1 \\leq i < M)

入力

入力は以下の形式で標準入力から与えられる。

NN MM A1A_1 A2A_2 ...... AMA_M

出力

答えを出力せよ。


入力例 1

2 1
3

出力例 1

8

条件を満たす pp としては \[1, 4, 2, 3\]\[3, 2, 1, 4\] などが、条件を満たさない pp としては \[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