import sys
INF = 10 ** 15
MOD = 10 ** 9 + 7
sys.setrecursionlimit(100000000)
input = sys.stdin.readline
from math import pi
from functools import lru_cache

def main():
    n,k = map(int,input().split())
    a = list(map(int,input().split()))
    dp = [[0,1] + [0] * k for _ in range(n + 1)]

    for i in range(n):
        m = a[i]
        for j in range(k + 1):
            dp[i][j + 1] += dp[i][j]
            dp[i][j + 1] %= MOD
        for j in range(1,k + 1):
            dp[i + 1][j + 1] = dp[i][j + 1] - dp[i][max(j - m,0)]
            dp[i + 1][j + 1] %= MOD
    
    print(dp[-1][-1])

if __name__ =='__main__':
    main()    