#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353;
int expmod(int a, long long b, int mod) {
  int res = 1;
  for (; b; b >>= 1) {
    if (b & 1) res = 1ll * res * a % mod;
    a = 1ll * a * a % mod;
  }
  return res;
}
int inv[270005] = {0, 1}, fac[270005] = {1, 1}, rfac[270005] = {1, 1};
int rev[262144], nw[262145];
void init() {
  rev[0] = 0;
  for (int i = 1; i < 262144; i++)
    rev[i] = (rev[i >> 1] >> 1) | ((i & 1) << 17);
  nw[0] = nw[262144] = 1;
  int rt = expmod(3, (mod - 1) / 262144, mod);
  for (int i = 1; i < 262144; i++) nw[i] = 1ll * nw[i - 1] * rt % mod;
  for (int i = 2; i < 270005; i++) {
    fac[i] = 1ll * fac[i - 1] * i % mod;
    inv[i] = 1ll * (mod / i) * (mod - inv[mod % i]) % mod;
    rfac[i] = 1ll * rfac[i - 1] * inv[i] % mod;
  }
}
void dft(int *a, int n, int fg) {
  int d = __builtin_ctz(262144 / n);
  for (int i = 0; i < n; i++)
    if (i < (rev[i] >> d)) swap(a[i], a[rev[i] >> d]);
  for (int size = 2; size <= n; size <<= 1) {
    int step = 262144 / size;
    if (fg) step = -step;
    for (int i = 0; i < n; i += size) {
      int *u = a + i, *v = a + (i + (size >> 1)), *w = fg ? nw + 262144 : nw;
      for (int k = (size >> 1); k--;) {
        int tmp = (long long)(*v) * (*w) % mod;
        *v = (*u + mod - tmp) % mod, *u = (*u + tmp) % mod;
        u++, v++, w += step;
      }
    }
  }
  if (fg) {
    int rev_n = expmod(n, mod - 2, mod);
    for (int i = 0; i < n; i++) a[i] = 1ll * a[i] * rev_n % mod;
  }
}
void multiply(int *a, int *b, int sz) {
  dft(a, sz, 0);
  dft(b, sz, 0);
  for (int i = 0; i < sz; i++) a[i] = 1ll * a[i] * b[i] % mod;
  dft(a, sz, 1);
  return;
}
int p[270005], a[270005], q[270005], n;
long long m;
int main() {
  init();
  scanf("%d %I64d", &n, &m);
  for (int i = 0; i <= n; i++) scanf("%d", &p[n - i]);
  for (int i = 0; i <= n; i++) p[i] = 1ll * p[i] * fac[n - i] % mod;
  for (int i = 0; i <= n; i++) a[i] = rfac[i];
  int up = 1;
  while (up <= (n + n)) up <<= 1;
  multiply(p, a, up);
  for (int i = n + 1; i < up; i++) a[i] = p[i] = 0;
  for (int i = 0; i <= n; i++)
    p[i] = 1ll * p[i] * expmod(inv[n - i + 1], m, mod) % mod;
  for (int i = 0; i <= n; i++) {
    if (i & 1)
      a[i] = mod - rfac[i];
    else
      a[i] = rfac[i];
  }
  multiply(p, a, up);
  reverse(p, p + n + 1);
  for (int i = 0; i <= n; i++) {
    p[i] = 1ll * p[i] * rfac[i] % mod;
    printf("%d ", p[i]);
  }
  return 0;
}
