#include <bits/stdc++.h>
using namespace std;
const int MAX = 2005;
const int MOD = 1000000007;
int n, k;
int a[MAX];
int power[MAX];
int c[MAX];
inline int Pow(int x, int k) {
  int res = 1;
  while (k) {
    if (k & 1) res = ((long long)res * x) % MOD;
    x = ((long long)x * x) % MOD;
    k >>= 1;
  }
  return res;
}
inline int Calc(int n, int m) {
  int res = 1;
  for (int i = n; i >= n - m + 1; i--) res = ((long long)res * i) % MOD;
  for (int i = m; i >= 1; i--) res = ((long long)res * power[i]) % MOD;
  return res;
}
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
  if (k == 0) {
    for (int i = 1; i <= n; i++) printf("%d ", a[i]);
    return 0;
  }
  for (int i = 1; i <= n; i++) power[i] = Pow(i, MOD - 2);
  for (int i = 1; i <= n; i++) c[i] = Calc(k + i - 2, i - 1);
  for (int i = 1; i <= n; i++) {
    int ans = 0;
    for (int j = 1; j <= i; j++)
      ans = (ans + (long long)a[j] * c[i - j + 1]) % MOD;
    printf("%d ", ans);
  }
  return 0;
}
