给定可用字符数为 N,允许的 ID 长度为 1∼L。长度为 k 的 ID 数为 Nk,因此总数为等比数列:
$$S=\sum_{k=1}^{L} N^k= \begin{cases} L & (N=1)\\[4pt] \dfrac{N^{L+1}-N}{N-1} & (N\neq 1) \end{cases}$$小华刚刚参加了一个编译器课程,他想设计实现自己的编译器。首先,他设计了一种语言,他的语言最大支持 N 个字不同的字符,并且他规定了由这些字符组成的 ID ,任何 ID 的长度需要大于等于 1 且小于等于 L 个字符,他希望设计一个程序知道他的语言总共能组成多少个 ID 。
例如,当 N=2 (假设字符可以是 0 或 1 ),并且 L=3 时,他具有如下的 ID {0,1,00,01,10,11,000,001,010,011,100,101,110,111},因此当 N=2,L=3 时总共有 14 种 ID 。
你需要编写一个程序,可以帮助小华找到可能的 ID 的总数。由于答案可能非常大,最后的结果需要对 1000000007 取余。
输入包含多个用例。每个用例将为包含两个整数 N 和 L 的一行。
N 是可以作为 id 的一部分的字符数,L 是该语言支持的最大长度 (1<=N<=65535,10<=L<=105) 。
当 N=0 并且 L 等于 0 时表示输入结束。
对每个用例输出一行 ID 的总数。
输入
2 3
100 15
0 0
输出
14
979451521