#include <bits/stdc++.h>
using namespace std;
const int M = 1000000007;
int n, k;
vector<vector<long long> > mul(vector<vector<long long> > &A,
                               vector<vector<long long> > &B) {
  vector<vector<long long> > C(1, vector<long long>(n));
  for (int i = 0; i < n; ++i) {
    for (int k = 0; k <= i; ++k) {
      C[0][i] = (C[0][i] + A[0][k] * B[0][i - k]) % M;
    }
  }
  return C;
}
vector<vector<long long> > pow(vector<vector<long long> > A, int k) {
  vector<vector<long long> > B(1, vector<long long>(n));
  B[0][0] = 1;
  while (k > 0) {
    if (k & 1) B = mul(B, A);
    A = mul(A, A);
    k >>= 1;
  }
  return B;
}
void solve() {
  vector<vector<long long> > f(1, vector<long long>(n));
  for (int i = 0; i < n; ++i) {
    f[0][i] = 1;
  }
  f = pow(f, k);
  vector<vector<long long> > A(1, vector<long long>(n));
  for (int i = 0; i < n; ++i) cin >> A[0][i];
  cout << A[0][0];
  for (int i = 1; i < n; ++i) {
    long long tmp = 0;
    for (int j = 0; j <= i; ++j) {
      tmp = (tmp + A[0][j] * f[0][i - j]) % M;
    }
    cout << " " << tmp;
  }
}
int main() {
  scanf("%d%d", &n, &k);
  solve();
  return 0;
}
