There is a building with n rooms, numbered 1 to n.

We can move from any room to any other room in the building.

Let us call the following event a move: a person in some room i goes to another room j~ (i \neq j).

Initially, there was one person in each room in the building.

After that, we know that there were exactly k moves happened up to now.

We are interested in the number of people in each of the n rooms now. How many combinations of numbers of people in the n rooms are possible?

Find the count modulo (10^9 + 7).

Constraints

* All values in input are integers.
* 3 \leq n \leq 2 \times 10^5
* 2 \leq k \leq 10^9

Input

Input is given from Standard Input in the following format:


n k


Output

Print the number of possible combinations of numbers of people in the n rooms now, modulo (10^9 + 7).

Examples

Input

3 2


Output

10


Input

200000 1000000000


Output

607923868


Input

15 6


Output

22583772
n, k = map(int, raw_input().split())

"""
T = [0]*n
def f(a, b, c):
  if a==n-1:
    T[c+max(b-1, 0)] += 1
  else:
    for i in range(0, b+1):
      f(a+1, b-i, c+max(i-1, 0))
f(0, n, 0)
ans = sum(T[:k+1])
print ans
print T
"""

"""
[1]
[1, 2]
[1, 6, 3]
[1, 12, 18, 4]
[1, 20, 60, 40, 5]
[1, 30, 150, 200, 75, 6]
[1, 42, 315, 700, 525, 126, 7]
https://oeis.org/A132813
T(n,k) = (k+1)*binomial(n+1,k+1)*binomial(n+1,k)/(n+1), n>=k>=0.
"""

M = 10**9+7

F = [0]*(n+1)
F[0] = 1
for i in range(1, n+1):
  F[i] = F[i-1]*i%M

def C(x, y):
  return F[x]*pow(F[y], M-2, M)*pow(F[x-y], M-2, M)%M

ans = 0
for i in range(min(k+1, n)):
  ans += (i+1)*C(n, i+1)*C(n, i)*pow(n, M-2, M)%M
print ans%M
