mod = 10**9+7

n,k = map(int, input().split())
a = list(map(int, input().split()))

DP = [0]*(k+1)
DP[0] = 1

for ai in a:
    nxt = [0]*(k+1)
    # iから前ai個の和になる
    # もらうDPにして和を保持すればO(N)
    s = 0
    for i in range(k+1):
        s += DP[i]
        if i>ai:
            s -= DP[i-ai-1]
        s %= mod
        nxt[i] = s
    DP = nxt
print(DP[-1])