#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353, G = 3;
int n, k, len, f[65536], g[65536], h[65536], fr[65536], inv;
int ksm(int a, int n) {
  int ans = 1;
  while (n) {
    if (n & 1) ans = 1ll * ans * a % mod;
    a = 1ll * a * a % mod;
    n >>= 1;
  }
  return ans;
}
int make(int m) {
  int n = 1, i;
  while (n <= m) n <<= 1;
  for (i = 0; i < n; ++i) fr[i] = (fr[i >> 1] >> 1) | (i & 1 ? n >> 1 : 0);
  inv = ksm(n, mod - 2);
  return n;
}
void NTT(int *f, int n, int opt) {
  int i, j, k, len;
  for (i = 0; i < n; ++i)
    if (i < fr[i]) swap(f[i], f[fr[i]]);
  for (i = 2; i <= n; i <<= 1) {
    len = i >> 1;
    int tG = ksm(G, (opt * (mod - 1) / i + mod - 1) % (mod - 1));
    for (j = 0; j < n; j += i) {
      int buf = 1;
      for (k = j; k < j + len; ++k) {
        int tmp = 1ll * f[k + len] * buf % mod;
        f[k + len] = f[k] < tmp ? f[k] - tmp + mod : f[k] - tmp;
        f[k] = f[k] + tmp < mod ? f[k] + tmp : f[k] + tmp - mod;
        buf = 1ll * buf * tG % mod;
      }
    }
  }
}
void Inc() {
  static int tmp[65536];
  tmp[0] = 1;
  for (int i = 1; i <= k; ++i)
    tmp[i] = ((h[i] + h[i - 1]) % mod + g[i - 1]) % mod;
  copy(g, g + k + 1, f);
  copy(h, h + k + 1, g);
  copy(tmp, tmp + k + 1, h);
}
void Shift() {
  static int a[65536], b[65536], c[65536], d[65536], e[65536];
  copy(f, f + k + 1, a);
  copy(g, g + k + 1, b);
  copy(h, h + k + 1, c);
  NTT(a, len, 1);
  NTT(b, len, 1);
  NTT(c, len, 1);
  for (int i = 0; i < len; ++i) {
    d[i] = 1ll * a[i] * b[i] % mod;
    e[i] = 1ll * b[i] * c[i] % mod;
    a[i] = 1ll * a[i] * a[i] % mod;
    b[i] = 1ll * b[i] * b[i] % mod;
    c[i] = 1ll * c[i] * c[i] % mod;
  }
  NTT(a, len, -1);
  NTT(b, len, -1);
  NTT(c, len, -1);
  NTT(d, len, -1);
  NTT(e, len, -1);
  for (int i = 0; i < len; ++i) {
    d[i] = 1ll * d[i] * inv % mod;
    e[i] = 1ll * e[i] * inv % mod;
    a[i] = 1ll * a[i] * inv % mod;
    b[i] = 1ll * b[i] * inv % mod;
    c[i] = 1ll * c[i] * inv % mod;
  }
  for (int i = 1; i <= k; ++i) {
    h[i] = (c[i] + b[i - 1]) % mod;
    g[i] = (e[i] + d[i - 1]) % mod;
    f[i] = (b[i] + a[i - 1]) % mod;
  }
  fill(a, a + len, 0);
  fill(b, b + len, 0);
  fill(c, c + len, 0);
}
int main() {
  scanf("%d%d", &n, &k);
  len = make(k << 1);
  f[0] = 1;
  g[0] = 1;
  g[1] = 1;
  h[0] = 1;
  h[1] = 3;
  h[2] = 1;
  if (n == 0) {
    for (int i = 1; i <= k; ++i) printf("%d ", f[i]);
    return 0;
  }
  if (n == 1) {
    for (int i = 1; i <= k; ++i) printf("%d ", g[i]);
    return 0;
  }
  for (int i = int(log(n) / log(2)) - 1; i > 0; --i) {
    if (n >> i & 1) Inc();
    Shift();
  }
  if (n & 1) Inc();
  for (int i = 1; i <= k; ++i) printf("%d ", h[i]);
  return 0;
}
