#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

const int MOD = 998244353;

ll pw(ll n, ll k) {
	ll r = 1; for(; k; k >>= 1) {
		if(k & 1) r = r * n % MOD;
		n = n * n % MOD;
	}
	return r;
}
ll inv(ll n) { return pw(n, MOD-2); }

ll F[5000], RF[5000], TP[5000];

int N, K;

ll C(int a, int b) {
	if(a < 0 || b < 0 || a < b) return 0;
	return F[a] * RF[b] % MOD * RF[a-b] % MOD;
}
ll D(int a, int b) { return (a <= 0 || b < 0) ? 0 : C(a+b-1, b); }

int f(int a, bool flag) {
	ll ret = 0;
	for(int k = 0; k <= a; k++) {
		ll t = TP[k] * C(a, k) % MOD;
		ret += t * D(K-a*2+k-flag, N-k);
		if(flag) ret += t * D(K-a*2+k-1, N-k-1);
		ret %= MOD;
	}
	return ret;
}

int main() {
	F[0] = TP[0] = 1;
	for(int i = 1; i < 5000; i++) {
		F[i] = F[i-1] * i % MOD;
		TP[i] = TP[i-1] * 2 % MOD;
	}
	RF[4999] = inv(F[4999]);
	for(int i = 4999; i; i--) RF[i-1] = RF[i] * i % MOD;

	cin >> K >> N;

	for(int t = 2; t <= K*2; t++) {
		int a = 0;
		for(int i = 1; i <= K; i++)
			if(i < t-i && t-i <= K) a++;
		printf("%d\n", f(a, !(t&1)));
	}
	return 0;
}