#include <bits/stdc++.h>
using namespace std;
int DP[2][100005];
int main() {
  int n, k;
  scanf("%d %d", &n, &k);
  DP[0][0] = 1;
  int now = 0, prv;
  for (int i = int(0); i < int(n); i++) {
    prv = now;
    now = !now;
    int x;
    scanf("%d", &x);
    for (int j = int(0); j < int(k + 1); j++) {
      DP[now][j] = ((j ? DP[now][j - 1] : 0) + DP[prv][j] -
                    (j - x - 1 >= 0 ? DP[prv][j - x - 1] : 0) + 1000000007) %
                   1000000007;
    }
  }
  printf("%d\n", DP[now][k]);
  return 0;
}
