#arc057d. [arc057_d]全域木

[arc057_d]全域木

问题文

考虑一个 NN 个顶点的无向完全图,边的权重从 11N(N1)/2N(N-1)/2 不同。假设最小生成树按照边的权重从小到大为 A1,A2,...,AN1A_1,A_2,...,A_{N-1},求满足条件的图的数量除以 109+710^9+7 的余数。

注意,当顶点之间可以通过重新排列得到时,认为这两个图是不同的。


约束条件

  • 1N301 ≦ N ≦ 30
  • 1A1<A2<...<AN1N(N1)/21 ≦ A_1 < A_2 < ... < A_{N-1} ≦ N(N-1)/2
  • 输入均为整数

输入

从标准输入读入输入数据,格式如下所示。

NN A1A_1 : AN1A_{N-1}

输出

输出满足条件的图的数量除以 109+710^9+7 的余数。


输入示例1


3
1
2

输出示例1


6

对于 33 个顶点的所有图都满足条件。


输入示例2


5
1
2
4
6

输出示例2


69120

输入示例3


5
2
3
4
5

输出示例3


0

输入示例4


10
1
2
4
6
8
10
11
12
14

输出示例4


837872061