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