Fax McClad, Croneria's most courageous bounty hunter, often has weird dreams in his sleep. Sometimes, he dreams about his past experiences, and at other times, he has nightmares about problem statements that have no relation to the actual problem.
One night, Fax had a very, very bizarre dream about d:
d received an array of length ~N~ (~1 \le N \le 2\,000~) with elements numbered from ~1 \ldots N~, and he performed the sum operation on it.
The sum operation takes in an array ~A~ and returns an array ~B~. Array ~B~ has these two important properties:
- Array ~A~ and array ~B~ are equal in length.
- For all elements ~B[k]~, the element satisfies ~B[k] = A+A+\ldots+A[k]~
Unimpressed with the result, d fed the result back in to the sum operation repeatedly, performing the operation ~M~ (~2 \le M \le 10^9~) times in total. At this point, d
Suddenly, Fax wakes up! Disturbed by the abstract dream, he asks you to help solve the problem so he can focus on his bounty hunting.
Subtask 1 [20%]
Tasks satisfy the constraint ~N \times M \le 10^6~.
Subtask 2 [60%]
Tasks satisfy the constraint ~N \le 100~.
Subtask 3 [20%]
No additional constraints.
The first line will contain ~N~, the number of elements in the array.
The next line will contain the elements ~A,A,\ldots,A[N]~, ~(0 \leq A[i] \leq 10^9+6)~, each separated by a space.
The final line of input will contain ~M~, the number of times the sum operation is performed.
The array after performing ~M~ sum operations on the given array.
Each element should be outputted mod ~10^9+7~ and elements should be separated by a single space.
5 4 2 8 1 1 2
4 10 24 39 55
Explanation for Sample Output
After one sum operation, the array is changed to:
4 6 14 15 16
After the second sum operation, the array is changed to:
4 10 24 39 55