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