#include <bits/stdc++.h>
using namespace std;
const int maxn = 1 << 16, mod = 998244353, g = 3;
int n, m, N = 1, l, rev[maxn], t1[maxn], t2[maxn], s[3][maxn], f[3][maxn];
int qpow(int x, int k) {
  long long d = 1, t = x;
  while (k) {
    if (k & 1) d = d * t % mod;
    t = t * t % mod, k >>= 1;
  }
  return d;
}
void DNT(int *F, int p) {
  for (int i = 0; i < N; i++)
    if (i < rev[i]) swap(F[i], F[rev[i]]);
  for (int i = 1; i < N; i <<= 1) {
    int w1 = qpow(g, (mod - 1) / (i << 1));
    for (int j = 0; j < N; j += i << 1) {
      int w = 1;
      for (int k = j; k < j + i; k++) {
        int t1 = F[k], t2 = 1ll * w * F[k + i] % mod;
        F[k] = (t1 + t2) % mod, F[k + i] = (t1 - t2 + mod) % mod;
        w = 1ll * w * w1 % mod;
      }
    }
  }
  if (!p) {
    int inv = qpow(N, mod - 2);
    for (int i = 0; i < N; i++) F[i] = 1ll * F[i] * inv % mod;
    for (int i = 1; i <= (N >> 1); i++) swap(F[i], F[N - i]);
  }
}
void NTT(int *F, int *G, int *H) {
  for (int i = 0; i <= m; i++) t1[i] = F[i], t2[i] = G[i];
  for (int i = m + 1; i < N; i++) t1[i] = t2[i] = 0;
  DNT(t1, 1), DNT(t2, 1);
  for (int i = 0; i < N; i++) t1[i] = 1ll * t1[i] * t2[i] % mod;
  DNT(t1, 0);
  for (int i = 0; i <= m; i++) H[i] = (H[i] + t1[i]) % mod;
}
void Mul(int x, int a, int b) {
  for (int i = 0; i <= m; i++) s[x][i] = 0;
  NTT(f[a], f[b], s[x]);
  NTT(f[a - 1], f[b - 1], s[x] + 1);
  s[x][m + 1] = 0;
}
void Add() {
  for (int i = 0; i <= m; i++) {
    f[0][i] = f[1][i], f[1][i] = f[2][i];
    f[2][i] = (f[1][i] + (i ? (f[1][i - 1] + f[0][i - 1]) % mod : 0)) % mod;
  }
}
int main() {
  f[2][0] = 1;
  scanf("%d%d", &n, &m);
  while (N < ((m + 1) << 1)) N <<= 1, l++;
  for (int i = 0; i < N; i++)
    rev[i] = (rev[i >> 1] >> 1) | ((i & 1) << (l - 1));
  int p = 30;
  while ((n & (1 << p)) == 0) p--;
  for (int i = p; i >= 0; i--) {
    if (n & (1 << i)) Add();
    if (i) {
      Mul(2, 2, 2), Mul(1, 2, 1), Mul(0, 1, 1);
      for (int j = 0; j <= m; j++)
        f[0][j] = s[0][j], f[1][j] = s[1][j], f[2][j] = s[2][j];
    }
  }
  for (int i = 1; i <= m; i++) printf("%d ", f[2][i]);
  return 0;
}
