题目描述
给定 n 个元素的集合 S={ 1,2...n} 和整数k,现在要从S 中选出若干子集 Ai,j(A⊆S,1≤j≤i≤k)排成下面所示边长为 k 的三角形(因此总共选出了 21k(k+1) 个子集)。
$\begin{matrix}
A_{1,1}\\
A_{2,1}&A_{2,2}\\
A_{3,1}&A_{3,2}&A_{3,3}\\
\vdots&\vdots&\vdots&\ddots\\
A_{k,1}&A_{k,2}&A_{k,3}&\cdots&A_{k,k}
\end{matrix} $
此外,JYY 对选出的子集之间还有额外的要求:选出的这些子集必须满足
Ai,j⊆Ai,j−1 且 Ai,j⊆Ai−1,j。
JYY 想知道,求有多少种不同的选取这些子集的方法。因为答案很大,JYY 只关心输出答案模 109+7 的值。
对于两种选取方案 A={ A1,1,A2,1,Ak,k} 和 B={ B1,1,B2,1,Bk,k} 只要存在 i,j 满足 Ai,j=Bi,j,我们就认为 A 和 B 是不同的方案。
输入格式
输入包含一行两个整数 n 和 k。
输出格式
一行一个整数,表示不同方案数目模 109+7 的值。
2 2
16
数据规模与约定
对于 100% 的数据,1≤n,k≤109。