#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
long long a[2005];
long long b[2005];
inline long long qpow(long long a, long long b) {
  if (b == 1) return a;
  long long t = qpow(a, b / 2);
  t = t * t % mod;
  if (b & 1) t = t * a % mod;
  return t;
}
inline long long C(long long n, long long m) {
  if (n < m) return 0;
  if (m > n - m) m = n - m;
  long long a = 1, b = 1;
  for (int i = 0; i < m; i++) {
    a = (a * (n - i)) % mod;
    b = (b * (i + 1)) % mod;
  }
  return a * qpow(b, mod - 2) % mod;
}
inline long long Lucas(long long n, long long m) {
  if (m == 0) return 1;
  return Lucas(n / mod, m / mod) * C(n % mod, m % mod) % mod;
}
int main() {
  int n;
  long long k;
  scanf("%d%lld", &n, &k);
  for (int i = 1; i <= n; i++) scanf("%lld", &a[i]);
  if (k == 0) {
    for (int i = 1; i <= n; i++) printf("%lld%c", a[i], i == n ? '\n' : ' ');
    return 0;
  }
  for (int i = 0; i <= n; i++) {
    long long p = C(i + k - 1, i);
    for (int j = 1; i + j <= n; j++) {
      b[i + j] = (b[i + j] + p * a[j] % mod) % mod;
    }
  }
  for (int i = 1; i <= n; i++) printf("%lld%c", b[i], i == n ? '\n' : ' ');
}
