#agc012f. [agc012_f]Prefix Median

[agc012_f]Prefix Median

题目描述

Snuke收到了一个长度为2N12N-1的整数序列aa

他任意排列了aa中的元素,然后用它构建了一个新的长度为NN的整数序列bb,具体操作如下:

  • b1=b_1 = (a1)(a_1)的中位数
  • b2=b_2 = (a1,a2,a3)(a_1, a_2, a_3)的中位数
  • b3=b_3 = (a1,a2,a3,a4,a5)(a_1, a_2, a_3, a_4, a_5)的中位数
  • ...
  • bN=b_N = (a1,a2,a3,...,a2N1)(a_1, a_2, a_3, ..., a_{2N-1})的中位数

有多少个不同的序列可以作为bb获得?将计数结果对109+710^9+7取模。

约束条件

  • 1N501 ≤ N ≤ 50
  • 1ai2N11 ≤ a_i ≤ 2N-1
  • aia_i是整数。

输入

从标准输入读入输入数据,具体格式如下:

NN a1a_1 a2a_2 ...... a2N1a_{2N-1}

输出

输出答案。

示例输入 1

2
1 3 2

示例输出 1

3

可以获得三个序列作为bb(1,2)(1,2)(2,2)(2,2)(3,2)(3,2)。分别可以通过(1,2,3)(1,2,3)(2,1,3)(2,1,3)(3,1,2)(3,1,2)构建。

示例输入 2

4
1 3 2 3 2 4 3

示例输出 2

16

示例输入 3

15
1 5 9 11 1 19 17 18 20 1 14 3 3 8 19 15 16 29 10 2 4 13 6 12 7 15 16 1 1

示例输出 3

911828634

将计数结果对109+710^9+7取模。