N,K = map(int,input().split()) MOD = 10**9+7 A = list(range(2*N+1)) A[0] = 1 for i in range(3,2*N+1): A[i] = i*A[i-1]%MOD B = [1]*(2*N+1) B[2*N] = pow(A[2*N],MOD-2,MOD) for i in range(2*N-1,1,-1): B[i] = (i+1)*B[i+1]%MOD def comb(n,k): if k<0 or k>n:return 0 return A[n]*B[k]*B[n-k]%MOD if K>=N: P = K for i in range(1,N): P = P*(K-i)%MOD ans = 0 for i in range(N): ans = (ans+P*pow(A[i],MOD-2,MOD)*pow(A[N-1-i],MOD-2,MOD))%MOD P = P*(K+i+1)*pow(K-N+1+i,MOD-2,MOD)%MOD ans = ans*pow(N,MOD-2,MOD)%MOD else: ans = 0 for i in range(N): ans = (ans+comb(N-1,i)*comb(K+i,N))%MOD print(ans)