#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <stack>
#include <queue>
#include <set>
#include <map>
using namespace std;
#define MOD 998244353
#define ADD(X,Y) ((X) = ((X) + (Y)%MOD) % MOD)
typedef long long i64; typedef vector<int> ivec; typedef vector<string> svec;

int K, N;

typedef vector<i64> Poly;

Poly operator*(const Poly &a, const Poly &b)
{
	Poly ret(a.size(), 0LL);
	for (int i = 0; i < a.size(); ++i) {
		for (int j = 0; j < b.size(); ++j) {
			if (i + j < a.size()) ADD(ret[i + j], a[i] * b[j]);
		}
	}
	return ret;
}

int main()
{
	scanf("%d%d", &K, &N);

	Poly P(N + 1, 1LL);
	Poly W = P, Q = P;
	for (int i = 0; i < 12; ++i) {
		if (((K - 1) >> i) & 1) {
			W = W * Q;
		}
		Q = Q * Q;
	}

	vector<i64> seq(2 * K - 1, -1LL);
	Poly L{ 1LL, 0LL, (i64)(MOD - 1) };

	for (int i = 0; i < K; ++i) {
		if (i % 2 == 0) {
			W = W * L;
		}
		seq[i] = W[N];
		seq[2 * K - 2 - i] = seq[i];
	}

	for (int i = 0; i < seq.size(); ++i) printf("%lld\n", seq[i]);

	return 0;
}
