#abc156e. [abc156_e]Roaming

[abc156_e]Roaming

题目描述

有一栋有nn个房间的大楼,编号从 11nn

我们可以从大楼中的任意一个房间移动到另一个房间。

我们将以下事件称为移动:一个人从某个房间 ii 去到另一个房间 j (ij)j~ (i \neq j)

最初,大楼中每个房间都有一个人。

之后,我们知道到目前为止发生了恰好 kk 次移动。

我们现在关心的是每个房间中的人数。有多少种不同的人数组合对应这 nn 个房间?

计算结果对 (109+7)(10^9 + 7) 取模。

约束条件

  • 输入中的所有值都是整数。
  • 3n2×1053 \leq n \leq 2 \times 10^5
  • 2k1092 \leq k \leq 10^9

输入

从标准输入读入输入数据,输入格式如下:

nn kk

输出

打印出现有 nn 个房间中人数的不同组合数量,对 (109+7)(10^9 + 7) 取模。

示例输入 1

3 2

示例输出 1

10

c1c_1c2c_2c3c_3 分别是房间 112233 中的人数。有 1010 种不同的人数组合 (c1,c2,c3)(c_1, c_2, c_3)

  • (0,0,3)(0, 0, 3)
  • (0,1,2)(0, 1, 2)
  • (0,2,1)(0, 2, 1)
  • (0,3,0)(0, 3, 0)
  • (1,0,2)(1, 0, 2)
  • (1,1,1)(1, 1, 1)
  • (1,2,0)(1, 2, 0)
  • (2,0,1)(2, 0, 1)
  • (2,1,0)(2, 1, 0)
  • (3,0,0)(3, 0, 0)

例如,如果房间 11 中的人去了房间 22,然后房间 22 中的一个人去了房间 33,那么 (c1,c2,c3)(c_1, c_2, c_3) 就是 (0,1,2)(0, 1, 2)

示例输入 2

200000 1000000000

示例输出 2

607923868

计算结果对 (109+7)(10^9 + 7) 取模。

示例输入 3

15 6

示例输出 3

22583772