#ARC093D. [ARC093F] Dark Horse

[ARC093F] Dark Horse

题目描述

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

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

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

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

  • ある i i について y = Ai y\ =\ A_i のとき、選手 1 1 と選手 y y (2  y  2N 2\ \leq\ y\ \leq\ 2^N ) が対戦すると選手 y y が勝つ。
  • どの i i についても y  Ai y\ \neq\ A_i のとき、選手 1 1 と選手 y y (2  y  2N 2\ \leq\ y\ \leq\ 2^N ) が対戦すると選手 1 1 が勝つ。
  • 2  x < y  2N 2\ \leq\ x\ <\ y\ \leq\ 2^N のとき、選手 x x と選手 y y が対戦すると選手 x x が勝つ。

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

输入格式

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

N N M M A1 A_1 A2 A_2 ... ... AM A_M

输出格式

答えを出力せよ。

题目大意

【题意简述】

  • 2N2^N 个人,按照满二叉树的形态进行淘汰赛,一开始的排列顺序为所有 (2N)!(2^N)! 个排列之一。
  • 你是第 11 个人,已知每一对人之间的实力关系,具体地说:
    • 给出 MM 个人 A1AMA_1 \sim A_M
    • MM 个人都打得过你。
    • 你打得过除了这 MM 个人之外的所有其他人。
    • 对于剩下的情况(你不参与的情况),编号小的人胜利。
  • 问你在所有的 (2N)!(2^N)! 种情况中,有多少种情况可以取得最终胜利。答案对 109+7{10}^9 + 7 取模。

【输入格式】

第一行两个整数 N,MN, M
第二行 MM 个整数 A1,A2,,AMA_1, A_2, \ldots , A_M

【输出格式】

输出一个数表示方案数,对 109+7{10}^9 + 7 取模。

【数据范围】

1N161 \le N \le 160M160 \le M \le 162Ai2N2 \le A_i \le 2^NAi<Ai+1A_i < A_{i + 1}

2 1
3
8
4 3
2 4 6
0
3 0
40320
3 3
3 4 7
2688
16 16
5489 5490 5491 5492 5493 5494 5495 5497 18993 18995 18997 18999 19000 19001 19002 19003
816646464

提示

制約

  • 1  N  16 1\ \leq\ N\ \leq\ 16
  • 0  M  16 0\ \leq\ M\ \leq\ 16
  • 2  Ai  2N 2\ \leq\ A_i\ \leq\ 2^N (1  i  M 1\ \leq\ i\ \leq\ M )
  • Ai < Ai + 1 A_i\ <\ A_{i\ +\ 1} (1  i < M 1\ \leq\ i\ <\ M )

Sample Explanation 1

条件を満たす p p としては [1, 4, 2, 3] [1,\ 4,\ 2,\ 3] [3, 2, 1, 4] [3,\ 2,\ 1,\ 4] などが、条件を満たさない p p としては [1, 2, 3, 4] [1,\ 2,\ 3,\ 4] [1, 3, 2, 4] [1,\ 3,\ 2,\ 4] などがあります。