操作数
题号:NC15871
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

给定长度为n的数组a,定义一次操作为:
1. 算出长度为n的数组s,使得si= (a[1] + a[2] + ... + a[i]) mod 1,000,000,007;
2. 执行a = s;
现在问k次操作以后a长什么样。

输入描述:

第一行两个整数n,k(1 <= n <= 2000, 0 <= k <= 1,000,000,000);
第二行n个整数表示a数组(0 <= ai<= 1,000,000,000)。

输出描述:

一行n个整数表示答案。
示例1

输入

复制
3 1
1 2 3

输出

复制
1 3 6
示例2

输入

复制
5 0
3 14 15 92 6

输出

复制
3 14 15 92 6