n, k = map(int, input().split())
k = min(k, n - 1)
p = 10 ** 9 + 7
size = n + 100
f_list = [1] * size
if_list = [1] * size
for i in range(1, size):
    f_list[i] = (f_list[i - 1] * i) % p
    if_list[i] = pow(f_list[i], p-2, p)

def cmb(n, r):
    return f_list[n] * if_list[r] * if_list[n-r] % p

# 初期値は0人の部屋が0個の場合
ans = 1
for i in range(1, k + 1):
    ans += cmb(n, i) * cmb(n - 1, i)
    ans = ans % p
print(ans) n, k = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split k k = min(k, n - 1) k min(k, n - 1) min k n - 1 n 1 p = 10 ** 9 + 7 p 10 ** 9 + 7 10 ** 9 10 9 7 size = n + 100 size n + 100 n 100 f_list = [1] * size f_list [1] * size [1] 1 size if_list = [1] * size if_list [1] * size [1] 1 size for i in range(1, size):
    f_list[i] = (f_list[i - 1] * i) % p
    if_list[i] = pow(f_list[i], p-2, p) i range(1, size) range 1 size f_list[i] = (f_list[i - 1] * i) % p f_list[i] f_list i (f_list[i - 1] * i) % p f_list[i - 1] * i f_list[i - 1] f_list i - 1 i 1 i p if_list[i] = pow(f_list[i], p-2, p) if_list[i] if_list i pow(f_list[i], p-2, p) pow f_list[i] f_list i p-2 p 2 p def cmb(n, r):
    return f_list[n] * if_list[r] * if_list[n-r] % p

# 初期値は0人の部屋が0個の場合 cmb return f_list[n] * if_list[r] * if_list[n-r] % p f_list[n] * if_list[r] * if_list[n-r] % p f_list[n] * if_list[r] * if_list[n-r] f_list[n] * if_list[r] f_list[n] f_list n if_list[r] if_list r if_list[n-r] if_list n-r n r p n n r r ans = 1 ans 1 for i in range(1, k + 1):
    ans += cmb(n, i) * cmb(n - 1, i)
    ans = ans % p i range(1, k + 1) range 1 k + 1 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 ans = ans % p ans ans % p ans p print(ans) print ans ans = 1 1 ans n, k = map(int, input().split()) map(int, input().split()) n k = min(k, n - 1) min(k, n - 1) k def cmb(n, r):
    return f_list[n] * if_list[r] * if_list[n-r] % p

# 初期値は0人の部屋が0個の場合 def cmb(n, r):
    return f_list[n] * if_list[r] * if_list[n-r] % p

# 初期値は0人の部屋が0個の場合 cmb k = map(int, input().split()) map(int, input().split()) k p = 10 ** 9 + 7 10 ** 9 + 7 p ans = ans % p ans % p ans if_list = [1] * size [1] * size if_list ans += cmb(n, i) * cmb(n - 1, i) cmb(n, i) * cmb(n - 1, i) ans size = n + 100 n + 100 size f_list = [1] * size [1] * size f_list
n, k = map(int, input().split())
k = min(k, n - 1)
p = 10 ** 9 + 7
size = n + 100
f_list = [1] * size
if_list = [1] * size
for i in range(1, size):
    f_list[i] = (f_list[i - 1] * i) % p
    if_list[i] = pow(f_list[i], p-2, p)

def cmb(n, r):
    return f_list[n] * if_list[r] * if_list[n-r] % p

# 初期値は0人の部屋が0個の場合
ans = 1
for i in range(1, k + 1):
    ans += cmb(n, i) * cmb(n - 1, i)
    ans = ans % p
print(ans)