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
****************************************************************/