#P0562. 两个数组(Two Arrays)

两个数组(Two Arrays)

题目描述

给定两个整数 n,mn,m。请计算有多少对数组 (a,b)(a,b) 满足下面所有条件:

  • 两个数组的长度都为 mm
  • 对所有 1im1\le i\le m,都有 1ain1\le a_i\le n1bin1\le b_i\le n
  • 数组 aa 单调不降,即 aiai+1a_i\le a_{i+1}
  • 数组 bb 单调不升,即 bibi+1b_i\ge b_{i+1}
  • 对所有 1im1\le i\le m,都有 aibia_i\le b_i

答案可能很大,请对 109+710^9+7 取模。

输入格式

一行两个整数 n,mn,m

输出格式

输出一个整数,表示满足条件的数组对 (a,b)(a,b) 的数量,对 109+710^9+7 取模。

样例

2 2
5
10 1
55
723 9
157557417

说明

第一个样例中共有 55 对数组:

  • a=[1,1],b=[2,2]a=[1,1], b=[2,2]
  • a=[1,2],b=[2,2]a=[1,2], b=[2,2]
  • a=[2,2],b=[2,2]a=[2,2], b=[2,2]
  • a=[1,1],b=[2,1]a=[1,1], b=[2,1]
  • a=[1,1],b=[1,1]a=[1,1], b=[1,1]

数据范围

1n10001\le n\le10001m101\le m\le10