def candies(n,k,a): 
    mod=10**9+7
    dp=[[ 0 for _ in range(k+1) ] for _ in range(n+1)]
    for i in range(n+1):
        dp[i][0]=1
    for i in range(n):
        for j in range(1,k+1):
            if j-1-a[i]>=0: 
                dp[i+1][j]=( dp[i+1][j-1]+dp[i][j]-dp[i][j-1-a[i]] +mod ) % mod
            else:
                dp[i+1][j]=( dp[i+1][j-1]+dp[i][j] ) %mod
    print(dp[n][k])


def main():
    n,k = map(int,input().split())
    a = list(map(int,input().split()))
    candies(n,k,a)

if __name__ == "__main__":
    main()