You've got an array *a*, consisting of *n* integers. The array elements are indexed from 1 to *n*. Let's determine a two step operation like that:
 1.  First we build by the array *a* an array *s* of partial sums, consisting of *n* elements. Element number *i* (1 ≤ *i* ≤ *n*) of array *s* equals <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/cdc22b6f0de971f5a4a64b6f9e22d76a719ec5b7.png" style="max-width: 100.0%;max-height: 100.0%;"/>. The operation *x* *mod* *y* means that we take the remainder of the division of number *x* by number *y*. 1.  Then we write the contents of the array *s* to the array *a*. Element number *i* (1 ≤ *i* ≤ *n*) of the array *s* becomes the *i*-th element of the array *a* (*a*<sub class="lower-index">*i*</sub> = *s*<sub class="lower-index">*i*</sub>). 
You task is to find array *a* after exactly *k* described operations are applied.
The first line contains two space-separated integers *n* and *k* (1 ≤ *n* ≤ 2000, 0 ≤ *k* ≤ 10<sup class="upper-index">9</sup>). The next line contains *n* space-separated integers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> — elements of the array *a* (0 ≤ *a*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">9</sup>).
mod=1000000007
n,k=map(int,input().split())
arr=list(map(int,input().split()))
arrx=[]
arr1=[]
for i in range(n):
	arr1.append(arr[i])
sum1=0
if(k==0):
	print(*arr)
else:
	j=1
	sumx=0
	for i in range(n):
		sumx=(j*(j+1))//2
		arrx.append(sumx)
		j+=1
	#print(*arrx)
	for i in range(n):
		sum1=0
		val=k
		for j in range(i):
			sum1+=((val)*(val+1)*arr1[j])//2
			val=max(val-1,1)
			#print(sum1,i)
		arr[i]=((arr[i]%mod)+(sum1%mod))%mod
	print(*arr)
