编程题
### 问题描述
蓝桥小分队在带队老师的组织下开展了一次线下唱歌团建。
带队老师为了检验一下同学们的算法能力,准备考一考他们:
现在已知歌房的点歌系统里面一共有 $N$ 首不同的歌曲,共有 $k$ 名队员,这 $k$ 个人的编号分别为 $1,2,3,...,k$。
每人按照编号从小到大的顺序开始轮流唱歌,要求:
$\bullet$ 这 $k$ 个新生每人至少要唱一首歌曲;
$\bullet$ 每首歌曲最多被唱一次;
$\bullet$ 第 $k$ 个人唱完结束,第 $1$ 个人接着高歌,再依次轮流下去,直到这 $N$ 首歌曲全部被唱完,活动结束;
$\bullet$ 两种选歌方案被认为不同表现为:存在某一名同学在同一轮次演唱了不同的歌曲。
问:如果要同时满足上述 $4$ 个要求,一共有多少种选歌方案?由于答案可能很大,因此需要对答案进行 $10^9+7$ 取模。
### 输入格式
输入第 $1$ 行包含两个正整数 $N$ 和 $k$,表示歌曲的总数和同学们的人数。
### 输出格式
输出仅一行,包含一个整数,表示答案(需要对答案进行 $10^9+7$ 取模)。
### 样例输入1
```
2 2
```
### 样例输出1
```
2
```
### 样例输入2
```
156 23
```
### 样例输出2
```
27830567
```
### **说明/提示**
对于所有评测数据,$1\leq N,k\leq 10^5$。
在样例 $1$ 中,根据题目要求,可以进行如下选歌方案:
方案 $1$:编号为 $1$ 的同学选唱编号为 $1$ 的歌曲,编号为 $2$ 的同学选唱编号为 $2$ 的歌曲;
方案 $2$:编号为 $1$ 的同学选唱编号为 $2$ 的歌曲,编号为 $2$ 的同学选唱编号为 $1$ 的歌曲。
所以不同方案数 $=2$。