# -*- coding: utf-8 -*-


class FactMod():
    '''
    modの値が素数の時のfactと組み合わせを求める
    フェルマーの小定理を用いているため、modが素数以外の時は使えない
    '''

    def __init__(self, n, mod):
        '''
        コンストラクタ
        f:nまでの i!の値を　配列に入れる
        inv: (i!)^-1　の値を配列に入れる
        '''
        self.mod = mod
        self.f = [1]*(n+1)
        for i in range(1, n+1):
            self.f[i] = self.f[i-1]*i % mod

        self.inv = [pow(self.f[-1], mod-2, mod)]
        for i in range(1, n+1)[::-1]:
            self.inv.append(self.inv[-1]*i % mod)
        self.inv.reverse()

    def fact(self, n):
        '''
        n!の値を返す
        '''
        return self.f[n]

    def comb(self, n, r):
        '''
        nCrの値を返す
        '''
        ret = self.f[n] * self.inv[n-r]*self.inv[r]
        ret %= self.mod
        return ret

    def perm(self, n, r):
        """
        nPrの値を返す
        """
        ret = self.f[n] * self.inv[n-r]
        ret %= self.mod
        return ret
N,K = map(int,input().split())

ans=0
MOD=10**9+7

F= FactMod(N,MOD)

for k in range(0,min(N,K+1)):
    ans += F.comb(N,k)*F.comb(N-1,k)%MOD
    ans%=MOD
print(ans) class FactMod():
    '''
    modの値が素数の時のfactと組み合わせを求める
    フェルマーの小定理を用いているため、modが素数以外の時は使えない
    '''

    def __init__(self, n, mod):
        '''
        コンストラクタ
        f:nまでの i!の値を　配列に入れる
        inv: (i!)^-1　の値を配列に入れる
        '''
        self.mod = mod
        self.f = [1]*(n+1)
        for i in range(1, n+1):
            self.f[i] = self.f[i-1]*i % mod

        self.inv = [pow(self.f[-1], mod-2, mod)]
        for i in range(1, n+1)[::-1]:
            self.inv.append(self.inv[-1]*i % mod)
        self.inv.reverse()

    def fact(self, n):
        '''
        n!の値を返す
        '''
        return self.f[n]

    def comb(self, n, r):
        '''
        nCrの値を返す
        '''
        ret = self.f[n] * self.inv[n-r]*self.inv[r]
        ret %= self.mod
        return ret

    def perm(self, n, r):
        """
        nPrの値を返す
        """
        ret = self.f[n] * self.inv[n-r]
        ret %= self.mod
        return ret FactMod '''
    modの値が素数の時のfactと組み合わせを求める
    フェルマーの小定理を用いているため、modが素数以外の時は使えない
    ''' def __init__(self, n, mod):
        '''
        コンストラクタ
        f:nまでの i!の値を　配列に入れる
        inv: (i!)^-1　の値を配列に入れる
        '''
        self.mod = mod
        self.f = [1]*(n+1)
        for i in range(1, n+1):
            self.f[i] = self.f[i-1]*i % mod

        self.inv = [pow(self.f[-1], mod-2, mod)]
        for i in range(1, n+1)[::-1]:
            self.inv.append(self.inv[-1]*i % mod)
        self.inv.reverse()

     __init__ '''
        コンストラクタ
        f:nまでの i!の値を　配列に入れる
        inv: (i!)^-1　の値を配列に入れる
        ''' self.mod = mod self.mod self mod mod self.f = [1]*(n+1) self.f self f [1]*(n+1) [1] 1 n+1 n 1 for i in range(1, n+1):
            self.f[i] = self.f[i-1]*i % mod

         i range(1, n+1) range 1 n+1 n 1 self.f[i] = self.f[i-1]*i % mod self.f[i] self.f self f i self.f[i-1]*i % mod self.f[i-1]*i self.f[i-1] self.f self f i-1 i 1 i mod self.inv = [pow(self.f[-1], mod-2, mod)] self.inv self inv [pow(self.f[-1], mod-2, mod)] pow(self.f[-1], mod-2, mod) pow self.f[-1] self.f self f -1 mod-2 mod 2 mod for i in range(1, n+1)[::-1]:
            self.inv.append(self.inv[-1]*i % mod)
         i range(1, n+1)[::-1] (1, n+1) range 1 n+1 n 1 ::-1 -1 self.inv.append(self.inv[-1]*i % mod) self.inv.append self.inv self inv append self.inv[-1]*i % mod self.inv[-1]*i self.inv[-1] self.inv self inv -1 i mod self.inv.reverse() self.inv.reverse self.inv self inv reverse self self n n mod mod def fact(self, n):
        '''
        n!の値を返す
        '''
        return self.f[n]

     fact '''
        n!の値を返す
        ''' return self.f[n] self.f[n] self.f self f n self self n n def comb(self, n, r):
        '''
        nCrの値を返す
        '''
        ret = self.f[n] * self.inv[n-r]*self.inv[r]
        ret %= self.mod
        return ret

     comb '''
        nCrの値を返す
        ''' ret = self.f[n] * self.inv[n-r]*self.inv[r] ret self.f[n] * self.inv[n-r]*self.inv[r] self.f[n] * self.inv[n-r] self.f[n] self.f self f n self.inv[n-r] self.inv self inv n-r n r self.inv[r] self.inv self inv r ret %= self.mod ret self.mod self mod return ret ret self self n n r r def perm(self, n, r):
        """
        nPrの値を返す
        """
        ret = self.f[n] * self.inv[n-r]
        ret %= self.mod
        return ret perm """
        nPrの値を返す
        """ ret = self.f[n] * self.inv[n-r] ret self.f[n] * self.inv[n-r] self.f[n] self.f self f n self.inv[n-r] self.inv self inv n-r n r ret %= self.mod ret self.mod self mod return ret ret self self n n r r 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 F= FactMod(N,MOD) F FactMod(N,MOD) FactMod N MOD for k in range(0,min(N,K+1)):
    ans += F.comb(N,k)*F.comb(N-1,k)%MOD
    ans%=MOD k range(0,min(N,K+1)) range 0 min(N,K+1) min N K+1 K 1 ans += F.comb(N,k)*F.comb(N-1,k)%MOD ans F.comb(N,k)*F.comb(N-1,k)%MOD F.comb(N,k)*F.comb(N-1,k) F.comb(N,k) F.comb F comb N k F.comb(N-1,k) F.comb F comb N-1 N 1 k MOD ans%=MOD ans MOD print(ans) print ans N,K = map(int,input().split()) map(int,input().split()) N ans += F.comb(N,k)*F.comb(N-1,k)%MOD F.comb(N,k)*F.comb(N-1,k)%MOD ans MOD=10**9+7 10**9+7 MOD ans%=MOD MOD ans K = map(int,input().split()) map(int,input().split()) K ans=0 0 ans class FactMod():
    '''
    modの値が素数の時のfactと組み合わせを求める
    フェルマーの小定理を用いているため、modが素数以外の時は使えない
    '''

    def __init__(self, n, mod):
        '''
        コンストラクタ
        f:nまでの i!の値を　配列に入れる
        inv: (i!)^-1　の値を配列に入れる
        '''
        self.mod = mod
        self.f = [1]*(n+1)
        for i in range(1, n+1):
            self.f[i] = self.f[i-1]*i % mod

        self.inv = [pow(self.f[-1], mod-2, mod)]
        for i in range(1, n+1)[::-1]:
            self.inv.append(self.inv[-1]*i % mod)
        self.inv.reverse()

    def fact(self, n):
        '''
        n!の値を返す
        '''
        return self.f[n]

    def comb(self, n, r):
        '''
        nCrの値を返す
        '''
        ret = self.f[n] * self.inv[n-r]*self.inv[r]
        ret %= self.mod
        return ret

    def perm(self, n, r):
        """
        nPrの値を返す
        """
        ret = self.f[n] * self.inv[n-r]
        ret %= self.mod
        return ret class FactMod():
    '''
    modの値が素数の時のfactと組み合わせを求める
    フェルマーの小定理を用いているため、modが素数以外の時は使えない
    '''

    def __init__(self, n, mod):
        '''
        コンストラクタ
        f:nまでの i!の値を　配列に入れる
        inv: (i!)^-1　の値を配列に入れる
        '''
        self.mod = mod
        self.f = [1]*(n+1)
        for i in range(1, n+1):
            self.f[i] = self.f[i-1]*i % mod

        self.inv = [pow(self.f[-1], mod-2, mod)]
        for i in range(1, n+1)[::-1]:
            self.inv.append(self.inv[-1]*i % mod)
        self.inv.reverse()

    def fact(self, n):
        '''
        n!の値を返す
        '''
        return self.f[n]

    def comb(self, n, r):
        '''
        nCrの値を返す
        '''
        ret = self.f[n] * self.inv[n-r]*self.inv[r]
        ret %= self.mod
        return ret

    def perm(self, n, r):
        """
        nPrの値を返す
        """
        ret = self.f[n] * self.inv[n-r]
        ret %= self.mod
        return ret FactMod F= FactMod(N,MOD) FactMod(N,MOD) F
# -*- coding: utf-8 -*-


class FactMod():
    '''
    modの値が素数の時のfactと組み合わせを求める
    フェルマーの小定理を用いているため、modが素数以外の時は使えない
    '''

    def __init__(self, n, mod):
        '''
        コンストラクタ
        f:nまでの i!の値を　配列に入れる
        inv: (i!)^-1　の値を配列に入れる
        '''
        self.mod = mod
        self.f = [1]*(n+1)
        for i in range(1, n+1):
            self.f[i] = self.f[i-1]*i % mod

        self.inv = [pow(self.f[-1], mod-2, mod)]
        for i in range(1, n+1)[::-1]:
            self.inv.append(self.inv[-1]*i % mod)
        self.inv.reverse()

    def fact(self, n):
        '''
        n!の値を返す
        '''
        return self.f[n]

    def comb(self, n, r):
        '''
        nCrの値を返す
        '''
        ret = self.f[n] * self.inv[n-r]*self.inv[r]
        ret %= self.mod
        return ret

    def perm(self, n, r):
        """
        nPrの値を返す
        """
        ret = self.f[n] * self.inv[n-r]
        ret %= self.mod
        return ret
N,K = map(int,input().split())

ans=0
MOD=10**9+7

F= FactMod(N,MOD)

for k in range(0,min(N,K+1)):
    ans += F.comb(N,k)*F.comb(N-1,k)%MOD
    ans%=MOD
print(ans)
