N,K = map(int,input().split()) a = list(map(int,input().split())) a.sort() P = 10 ** 9 + 7 dp = [0] * (K+1) dp[0] = 1 for i in range(N): nx = [0] * (K + 1) S = [0] * (K + 2) for j in range(K+1): S[j+1] = (S[j] + dp[j]) % P for j in range(K+1): tmp = S[j+1] - S[max(0,j-i)] nx[j] += tmp for u in range(K+1): nx[u] %= P dp = nx ans = 0 for i in dp: ans = (ans + i) % P print(ans)