N, S=map(int, input().split())
A=list(map(int, input().split()))
tmp=max(A+[S])

dp=[[[0]*3 for s in range(tmp+1)] for i in range(N)]
dp[0][0][0]=1
dp[0][A[0]][1]=1
dp[0][A[0]][2]=1

for i in range(1, N):
    dp[i][0][0]=i+1
    dp[i][A[i]][1]=1
    dp[i][A[i]][2]=1
    for s in range(A[i]):
        dp[i][s][1]=dp[i-1][s][1]
        dp[i][s][2]=dp[i-1][s][2]+dp[i-1][s][1]
        
    for s in range(A[i], S+1):
        dp[i][s][1]=dp[i][s-A[i]][0]+dp[i-1][s-A[i]][1]+dp[i-1][s][1]
        dp[i][s][2]=dp[i-1][s][2]+dp[i][s-A[i]][0]+dp[i-1][s][1]+dp[i-1][s-A[i]][1]
        
print(dp[-1][S][2])