#include <bits/stdc++.h>
using namespace std;
const long long maxn = 6000 + 66;
const long long mod = 1e9 + 7;
int n, K;
long long a[maxn];
long long inv[maxn];
inline void init() {
  inv[1] = 1;
  for (int i = 2; i <= 6000; i++) inv[i] = (mod - mod / i) * inv[mod % i] % mod;
}
inline long long C(long long n, long long m) {
  long long ans = 1;
  for (int i = 1; i <= m; i++) ans = ans * inv[i] % mod * (n - i + 1) % mod;
  return ans;
}
long long c[maxn];
int main() {
  init();
  while (scanf("%d%d", &n, &K) == 2) {
    for (int i = 0; i < n; i++) scanf("%lld", a + i);
    if (K == 0) {
      for (int i = 0; i < n; i++) printf("%lld\n", a[i]);
      continue;
    }
    for (int i = 0; i < n; i++) c[i] = C(i + K - 1, i);
    for (int i = 0; i < n; i++) {
      long long ans = 0;
      for (int j = 0; j <= i; j++) ans = (ans + a[j] * c[i - j] % mod) % mod;
      printf("%lld\n", ans);
    }
  }
  return 0;
}
