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

# ①nCrの各項のmod(10^9+7)を事前計算
p = 10 ** 9 + 7
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, 2*n):
  fact.append((fact[-1] * i) % p)
  inv.append((-inv[p % i] * (p // i)) % p)
  factinv.append((factinv[-1] * inv[-1]) % p)

# ②事前計算した項を掛け合わせ
def cmb(n, r, p):
  if (r < 0) or (n < r):
    return 0
  r = min(r, n - r)
  return fact[n] * factinv[r] * factinv[n-r] % p

rlt = 0
m = min(n,k+1)
for i in range(m):
  rlt += cmb(n-1,n-1-i,p)*cmb(n,i,p) % p
  rlt %= p
  
print(rlt) n, k = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split k p = 10 ** 9 + 7 p 10 ** 9 + 7 10 ** 9 10 9 7 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, 2*n):
  fact.append((fact[-1] * i) % p)
  inv.append((-inv[p % i] * (p // i)) % p)
  factinv.append((factinv[-1] * inv[-1]) % p)

# ②事前計算した項を掛け合わせ i range(2, 2*n) range 2 2*n 2 n 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 def cmb(n, r, p):
  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 p rlt = 0 rlt 0 m = min(n,k+1) m min(n,k+1) min n k+1 k 1 for i in range(m):
  rlt += cmb(n-1,n-1-i,p)*cmb(n,i,p) % p
  rlt %= p
   i range(m) range m rlt += cmb(n-1,n-1-i,p)*cmb(n,i,p) % p rlt cmb(n-1,n-1-i,p)*cmb(n,i,p) % p cmb(n-1,n-1-i,p)*cmb(n,i,p) cmb(n-1,n-1-i,p) cmb n-1 n 1 n-1-i n-1 n 1 i p cmb(n,i,p) cmb n i p p rlt %= p rlt p print(rlt) print rlt fact = [1, 1] [1, 1] fact inv = [0, 1] [0, 1] inv rlt += cmb(n-1,n-1-i,p)*cmb(n,i,p) % p cmb(n-1,n-1-i,p)*cmb(n,i,p) % p rlt def cmb(n, r, p):
  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):
  if (r < 0) or (n < r):
    return 0
  r = min(r, n - r)
  return fact[n] * factinv[r] * factinv[n-r] % p cmb rlt %= p p rlt rlt = 0 0 rlt k = map(int, input().split()) map(int, input().split()) k m = min(n,k+1) min(n,k+1) m p = 10 ** 9 + 7 10 ** 9 + 7 p n, k = map(int, input().split()) map(int, input().split()) n factinv = [1, 1] [1, 1] factinv
n, k = map(int, input().split())

# ①nCrの各項のmod(10^9+7)を事前計算
p = 10 ** 9 + 7
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, 2*n):
  fact.append((fact[-1] * i) % p)
  inv.append((-inv[p % i] * (p // i)) % p)
  factinv.append((factinv[-1] * inv[-1]) % p)

# ②事前計算した項を掛け合わせ
def cmb(n, r, p):
  if (r < 0) or (n < r):
    return 0
  r = min(r, n - r)
  return fact[n] * factinv[r] * factinv[n-r] % p

rlt = 0
m = min(n,k+1)
for i in range(m):
  rlt += cmb(n-1,n-1-i,p)*cmb(n,i,p) % p
  rlt %= p
  
print(rlt)