var a: array[1..1000] of longint;
    dp, p: array[-10..150, -110000..200000] of longint;    
    i, j, N, K: longint;
begin
    readln(N, K);
    for i:=1 to N do
        read(a[i]);
    for i:=0 to a[1] do
    begin
        dp[1,i]:=1;
    end;
    for i:=0 to K do
        p[1,i]:=p[1,i-1]+dp[1,i];
    for i:=2 to N do
    begin
        for j:=0 to K do
        begin
            dp[i,j]:=(p[i-1,j]-p[i-1,j-a[i]-1]) mod 1000000007;
            p[i,j]:=(p[i,j-1]+dp[i,j]) mod 1000000007;
//            write(dp[i,j], ' ');
        end;
//        writeln;
    end;
    writeln(dp[N,K]);
end.