"""
https://www.planeta.tokyo/entry/5195/
"""
def cmb(n, r, p=10**9+7):
    if (r < 0) or (n < r):
        return 0
    r = min(r, n - r)
    return fact[n] * factinv[r] * factinv[n-r] % p

p = 10**9+7
n = 2*10**5+1  # N は必要分だけ用意する
fact = [1, 1]  # fact[n] = (n! mod p)
factinv = [1, 1]  # factinv[n] = ((n!)^(-1) mod p)
inv = [0, 1]  # factinv 計算用
 
for i in range(2, n + 1):
    fact.append((fact[-1] * i) % p)
    inv.append((-inv[p % i] * (p // i)) % p)
    factinv.append((factinv[-1] * inv[-1]) % p)


N,k = map(int,input().split())

##移動が起きたとして,部屋にいる人数は高々min(N,k)人である

ans = 0
mod = 10**9 + 7
for i in range(1,min(N,k)+1):
    ans += cmb(N,i)*cmb(N-1,i)

print(ans%mod+1) """
https://www.planeta.tokyo/entry/5195/
""" def cmb(n, r, p=10**9+7):
    if (r < 0) or (n < r):
        return 0
    r = min(r, n - r)
    return fact[n] * factinv[r] * factinv[n-r] % p cmb if (r < 0) or (n < r):
        return 0
     (r < 0) or (n < r) r < 0 r 0 n < r n r return 0 0 r = min(r, n - r) r min(r, n - r) min r n - r n r return fact[n] * factinv[r] * factinv[n-r] % p fact[n] * factinv[r] * factinv[n-r] % p fact[n] * factinv[r] * factinv[n-r] fact[n] * factinv[r] fact[n] fact n factinv[r] factinv r factinv[n-r] factinv n-r n r p n n r r p=10**9+7 p 10**9+7 10**9 10 9 7 p = 10**9+7 p 10**9+7 10**9 10 9 7 n = 2*10**5+1 n 2*10**5+1 2*10**5 2 10**5 10 5 1 fact = [1, 1] fact [1, 1] 1 1 factinv = [1, 1] factinv [1, 1] 1 1 inv = [0, 1] inv [0, 1] 0 1 for i in range(2, n + 1):
    fact.append((fact[-1] * i) % p)
    inv.append((-inv[p % i] * (p // i)) % p)
    factinv.append((factinv[-1] * inv[-1]) % p) i range(2, n + 1) range 2 n + 1 n 1 fact.append((fact[-1] * i) % p) fact.append fact append (fact[-1] * i) % p fact[-1] * i fact[-1] fact -1 i p inv.append((-inv[p % i] * (p // i)) % p) inv.append inv append (-inv[p % i] * (p // i)) % p -inv[p % i] * (p // i) -inv[p % i] inv[p % i] inv p % i p i p // i p i p factinv.append((factinv[-1] * inv[-1]) % p) factinv.append factinv append (factinv[-1] * inv[-1]) % p factinv[-1] * inv[-1] factinv[-1] factinv -1 inv[-1] inv -1 p N,k = map(int,input().split()) N map(int,input().split()) map int input().split() ().split () input split k ans = 0 ans 0 mod = 10**9 + 7 mod 10**9 + 7 10**9 10 9 7 for i in range(1,min(N,k)+1):
    ans += cmb(N,i)*cmb(N-1,i) i range(1,min(N,k)+1) range 1 min(N,k)+1 min(N,k) min N k 1 ans += cmb(N,i)*cmb(N-1,i) ans cmb(N,i)*cmb(N-1,i) cmb(N,i) cmb N i cmb(N-1,i) cmb N-1 N 1 i print(ans%mod+1) print ans%mod+1 ans%mod ans mod 1 def cmb(n, r, p=10**9+7):
    if (r < 0) or (n < r):
        return 0
    r = min(r, n - r)
    return fact[n] * factinv[r] * factinv[n-r] % p def cmb(n, r, p=10**9+7):
    if (r < 0) or (n < r):
        return 0
    r = min(r, n - r)
    return fact[n] * factinv[r] * factinv[n-r] % p cmb fact = [1, 1] [1, 1] fact p = 10**9+7 10**9+7 p ans += cmb(N,i)*cmb(N-1,i) cmb(N,i)*cmb(N-1,i) ans n = 2*10**5+1 2*10**5+1 n k = map(int,input().split()) map(int,input().split()) k mod = 10**9 + 7 10**9 + 7 mod inv = [0, 1] [0, 1] inv factinv = [1, 1] [1, 1] factinv N,k = map(int,input().split()) map(int,input().split()) N ans = 0 0 ans
"""
https://www.planeta.tokyo/entry/5195/
"""
def cmb(n, r, p=10**9+7):
    if (r < 0) or (n < r):
        return 0
    r = min(r, n - r)
    return fact[n] * factinv[r] * factinv[n-r] % p

p = 10**9+7
n = 2*10**5+1  # N は必要分だけ用意する
fact = [1, 1]  # fact[n] = (n! mod p)
factinv = [1, 1]  # factinv[n] = ((n!)^(-1) mod p)
inv = [0, 1]  # factinv 計算用
 
for i in range(2, n + 1):
    fact.append((fact[-1] * i) % p)
    inv.append((-inv[p % i] * (p // i)) % p)
    factinv.append((factinv[-1] * inv[-1]) % p)


N,k = map(int,input().split())

##移動が起きたとして,部屋にいる人数は高々min(N,k)人である

ans = 0
mod = 10**9 + 7
for i in range(1,min(N,k)+1):
    ans += cmb(N,i)*cmb(N-1,i)

print(ans%mod+1)