#P0562. 两个数组(Two Arrays)

两个数组(Two Arrays)

题目描述

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

  • 两个数组的长度都为 mm;
  • 对所有 1≤i≤m1\le i\le m,都有 1≤ai≤n1\le a_i\le n 且 1≤bi≤n1\le b_i\le n;
  • 数组 aa 单调不降,即 ai≤ai+1a_i\le a_{i+1};
  • 数组 bb 单调不升,即 bi≥bi+1b_i\ge b_{i+1};
  • 对所有 1≤i≤m1\le i\le m,都有 ai≤bia_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]。

数据范围

1≤n≤10001\le n\le1000,1≤m≤101\le m\le10。