def f(n, v): return n * (S + 1) + v N, K = map(int, input().split()) A = list(map(int, input().split())) mod = 10 ** 9 + 7 S = sum(A) pre = [0] * ((N + 1) * (S + 1)) pre[0] = 1 for i in range(N): dp = [0] * ((N + 1) * (S + 1)) for j in range(i + 2): for v in range(S + 1): dp[f(j, v)] += pre[f(j, v)] if v - A[i] >= 0 and j: dp[f(j, v)] += pre[f(j - 1, v - A[i])] dp[f(j, v)] %= mod dp, pre = pre, dp ans = 0 for j in range(1, N + 1): for v in range(S + 1): if v >= j * K: ans += pre[f(j, v)] ans %= mod print(ans)