program P1104;
var n,m,i,j,k,t:longint;
d:array[1..100] of integer;
f:array[1..100,0..100] of longint;
begin
readln(n,m);
for i:=1 to n do read(d[i]);
for i:=0 to d[1] do f[1,i]:=1;
for i:=2 to n do
for j:=0 to m do
begin
t:=0;
for k:=0 to d[i] do
if j-k>=0 then t:=t+f[i-1,j-k];
f[i,j]:=t mod 1000007;
end;
writeln(f[n,m]);
readln;
end.
/**************************************************************
Problem: 2312
User: admin
Language: Pascal
Result: Wrong Answer
****************************************************************/