def cmb(n, r, mod):
    if (r < 0 or r > n):
        return 0
    r = min(r, n-r)
    return g1[n] * g2[r] * g2[n-r] % mod


mod = 10**9+7  # 出力の制限
N, K = map(int, input().split())
n = N*2
r = min(N, K+1)
g1 = [1, 1]  # 元テーブル
g2 = [1, 1]  # 逆元テーブル
inverse = [0, 1]  # 逆元テーブル計算用テーブル

for i in range(2, n + 1):
    g1.append((g1[-1] * i) % mod)
    inverse.append((-inverse[mod % i] * (mod//i)) % mod)
    g2.append((g2[-1] * inverse[-1]) % mod)

ans = 0
for i in range(r):
    ans += cmb(N, i, mod) * cmb(N-1, i, mod)
if K == 1:
    ans -= 1
print(ans % mod) def cmb(n, r, mod):
    if (r < 0 or r > n):
        return 0
    r = min(r, n-r)
    return g1[n] * g2[r] * g2[n-r] % mod cmb if (r < 0 or r > n):
        return 0
     r < 0 or r > n r < 0 r 0 r > n r n return 0 0 r = min(r, n-r) r min(r, n-r) min r n-r n r return g1[n] * g2[r] * g2[n-r] % mod g1[n] * g2[r] * g2[n-r] % mod g1[n] * g2[r] * g2[n-r] g1[n] * g2[r] g1[n] g1 n g2[r] g2 r g2[n-r] g2 n-r n r mod n n r r mod mod mod = 10**9+7 mod 10**9+7 10**9 10 9 7 N, K = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split K n = N*2 n N*2 N 2 r = min(N, K+1) r min(N, K+1) min N K+1 K 1 g1 = [1, 1] g1 [1, 1] 1 1 g2 = [1, 1] g2 [1, 1] 1 1 inverse = [0, 1] inverse [0, 1] 0 1 for i in range(2, n + 1):
    g1.append((g1[-1] * i) % mod)
    inverse.append((-inverse[mod % i] * (mod//i)) % mod)
    g2.append((g2[-1] * inverse[-1]) % mod) i range(2, n + 1) range 2 n + 1 n 1 g1.append((g1[-1] * i) % mod) g1.append g1 append (g1[-1] * i) % mod g1[-1] * i g1[-1] g1 -1 i mod inverse.append((-inverse[mod % i] * (mod//i)) % mod) inverse.append inverse append (-inverse[mod % i] * (mod//i)) % mod -inverse[mod % i] * (mod//i) -inverse[mod % i] inverse[mod % i] inverse mod % i mod i mod//i mod i mod g2.append((g2[-1] * inverse[-1]) % mod) g2.append g2 append (g2[-1] * inverse[-1]) % mod g2[-1] * inverse[-1] g2[-1] g2 -1 inverse[-1] inverse -1 mod ans = 0 ans 0 for i in range(r):
    ans += cmb(N, i, mod) * cmb(N-1, i, mod) i range(r) range r ans += cmb(N, i, mod) * cmb(N-1, i, mod) ans cmb(N, i, mod) * cmb(N-1, i, mod) cmb(N, i, mod) cmb N i mod cmb(N-1, i, mod) cmb N-1 N 1 i mod if K == 1:
    ans -= 1 K == 1 K 1 ans -= 1 ans 1 print(ans % mod) print ans % mod ans mod n = N*2 N*2 n ans += cmb(N, i, mod) * cmb(N-1, i, mod) cmb(N, i, mod) * cmb(N-1, i, mod) ans mod = 10**9+7 10**9+7 mod inverse = [0, 1] [0, 1] inverse ans -= 1 1 ans N, K = map(int, input().split()) map(int, input().split()) N K = map(int, input().split()) map(int, input().split()) K r = min(N, K+1) min(N, K+1) r g1 = [1, 1] [1, 1] g1 ans = 0 0 ans g2 = [1, 1] [1, 1] g2 def cmb(n, r, mod):
    if (r < 0 or r > n):
        return 0
    r = min(r, n-r)
    return g1[n] * g2[r] * g2[n-r] % mod def cmb(n, r, mod):
    if (r < 0 or r > n):
        return 0
    r = min(r, n-r)
    return g1[n] * g2[r] * g2[n-r] % mod cmb
def cmb(n, r, mod):
    if (r < 0 or r > n):
        return 0
    r = min(r, n-r)
    return g1[n] * g2[r] * g2[n-r] % mod


mod = 10**9+7  # 出力の制限
N, K = map(int, input().split())
n = N*2
r = min(N, K+1)
g1 = [1, 1]  # 元テーブル
g2 = [1, 1]  # 逆元テーブル
inverse = [0, 1]  # 逆元テーブル計算用テーブル

for i in range(2, n + 1):
    g1.append((g1[-1] * i) % mod)
    inverse.append((-inverse[mod % i] * (mod//i)) % mod)
    g2.append((g2[-1] * inverse[-1]) % mod)

ans = 0
for i in range(r):
    ans += cmb(N, i, mod) * cmb(N-1, i, mod)
if K == 1:
    ans -= 1
print(ans % mod)
