#include <bits/stdc++.h>
using namespace std;
int toInt(string s) {
  int v;
  istringstream sin(s);
  sin >> v;
  return v;
}
template <class T>
string toString(T x) {
  ostringstream sout;
  sout << x;
  return sout.str();
}
vector<string> form(string a, char s) {
  a += s;
  vector<string> v;
  string b;
  for (int i = (0); i < (int)(a.size()); ++i) {
    if (a[i] == s) {
      v.push_back(b);
      b = "";
    } else
      b += a[i];
  }
  return v;
}
vector<int> formint(string a, char s) {
  vector<int> v;
  vector<string> w = form(a, s);
  for (int i = (0); i < (int)(w.size()); ++i) v.push_back(toInt(w[i]));
  return v;
}
const int mod = 1000000007;
int aa[2048];
int bb[2048];
int pows(int a, int b) {
  if (b == 0) return 1;
  int k = pows(a, b / 2);
  k = ((long long)k * k) % mod;
  if (b % 2 == 1) k = ((long long)k * a) % mod;
  return k;
}
int divs(int a, int b) { return (((long long)a) * pows(b, mod - 2)) % mod; }
int combi(int a, int b) {
  int res = 1;
  if (a / 2 < b) b = a - b;
  for (int i = a, j = 0; j < b; i--, j++) res = (((long long)res) * i) % mod;
  for (int i = 2; i <= b; i++) res = divs(res, i);
  return res;
}
int main(void) {
  int n, k;
  cin >> n >> k;
  for (int i = (0); i < (int)(n); ++i) cin >> aa[i];
  if (k == 0) {
    for (int i = (0); i < (int)(n); ++i) {
      if (i > 0) cout << " ";
      cout << aa[i];
    }
    cout << endl;
    return 0;
  }
  for (int i = (0); i < (int)(n); ++i) bb[i] = combi(k + i - 1, i);
  for (int i = (0); i < (int)(n); ++i) {
    if (i != 0) cout << " ";
    int res = 0;
    for (int j = (0); j < (int)(i + 1); ++j) {
      res = (res + ((long long)aa[j] * bb[i - j]) % mod) % mod;
    }
    cout << res;
  }
  cout << endl;
  return 0;
}
