#include<stdio.h>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<vector>
#include<map>
#include<set>
#include<cmath>
#include<iostream>
#include<queue>
#include<string>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef long double ld;
typedef unsigned long long ull;
typedef pair<long long,long long> pll;
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define rep(i,j,k)  for(register int i=(int)(j);i<=(int)(k);i++)
#define rrep(i,j,k) for(register int i=(int)(j);i>=(int)(k);i--)

ll read(){
	ll x=0,f=1;char c=getchar();
	while(c<'0' || c>'9'){if(c=='-')f=-1;c=getchar();}
	while(c>='0' && c<='9'){x=x*10+c-'0';c=getchar();}
	return x*f;
}

const int mod=998244353;
int k,n;
ll C[4444][4444];

int main(){
	C[0][0]=1;
	for(int i=1;i<=4000;i++){
		C[i][0]=C[i][i]=1;
		for(int j=1;j<i;j++){
			C[i][j]=(C[i-1][j]+C[i-1][j-1])%mod;
		}
	}
	int k=read(),n=read();
	for(int i=2;i<=2*k;i++){
		ll ans=0,cur=1;
		int cnt=max(min(i/2,k)-max(i-k,1)+1,0);
		int x=k-cnt*2;
		for(int j=0;j<=cnt;j++){
			ans+=C[cnt][j]*1ll*cur%mod*C[n+x-1][x+j-1];
			ans%=mod;cur=cur*2%mod;
		}
		cout<<ans<<endl;
	}
	return 0;
}
