#763. 组合数问题

组合数问题

无额外样例。

题目描述

众所周知,小葱同学擅长计算,尤其擅长计算组合数,所以小葱给了你两个数 nnkk,希望你找到 kk 个不同的组合数使得这 kk 个组合数的和最大。

所谓不同的组合数,即对于组合数 Ca1b1C_{a_1}^{b_1}​​​ 和 Ca2b2C_{a_2}^{b_2},若 a1a2a_1\neq a_2 或者 b1b2b_1\neq b_2​​,则我们认为这两个组合数是不同的。

现在小葱希望你找到这样 kk 个不同的组合数,使得它们互不相同且对于其中任何一个组合数 CabC_a^b0ban0 ≤ b ≤ a ≤ n。问这 kk 个组合数的和最大是多少?

输入格式

第一行两个整数 n,kn,k

输出格式

一行一个整数,代表 kk 个组合数的和对 109+710^9+7 取模之后的结果;数据保证一定有至少 kk 个数可以选。

样例1输入

2 3

样例1输出

4

样例2输入

123456 78910

样例2输出

497527351

说明/提示

20%20\% 的数据,n10n ≤ 10

40%40\% 的数据,n500n ≤ 500

另外 20%20\% 的数据,k=1k=1

100%100\% 的数据,1n106,1k105.1 ≤ n ≤ 10^6,1 ≤ k ≤ 10^5.