#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=2010,MOD=998244353;
int C[N*2][N*2],pw[N*2];
int n,K,ans;
int plu(int x,int y){return (1LL*x+y)%MOD;}
int mul(int x,int y){return 1LL*x*y%MOD;}
void prework(int n){
	C[0][0]=1;
	for (int i=1;i<=n;++i){
		C[i][0]=1; C[i][i]=1;
		for (int j=1;j<i;++j)
			C[i][j]=plu(C[i-1][j-1],C[i-1][j]);
	}
	pw[0]=1;
	for (int i=1;i<=n;++i) pw[i]=mul(pw[i-1],2);
}
int f(int x,int y,int z){
	if (y<0) return 0;
	int ret=0;
	for(int q=0;q<=z&&q<=x;++q)
		if (q+y-1<=z+y-1&&q+y-1>=0) 
			ret=plu(ret,mul(C[x][q],mul(pw[q],C[z+y-1][q+y-1])));
	return ret;
}

int main(){
#ifndef ONLINE_JUDGE
	//freopen("a.in","r",stdin);
#endif
	int cnt;
	scanf("%d%d",&K,&n);
	prework(n+K);
	for (int i=2;i<=2*K;++i){
		cnt=0;
		for (int j=1;j<=K;++j)
			if (1<=i-j&&i-j<=K) ++cnt;
		if (i&1)
			ans=f(cnt/2,K-cnt,n);
		else{
			ans=f((cnt-1)/2,K-cnt,n);
			ans=plu(ans,f((cnt-1)/2,K-cnt,n-1));
		}
		printf("%d\n",ans);
	}
}