#include using namespace std; #define int long long const int p=998244353; int n,m,k; array v; void add(array& u,int x) { for(int i=0;i=p) u[i]-=p; } } int f(array u,array v) { int ans=u[0]*v[0];ans%=p; for(int i=1;i>n>>m>>k; int a[n+1];for(int i=0;i>a[i];} a[n]=0; int ans[n]={0}; for(int i=m;i<=n;i+=m) { array u; for(int i=0;i<100;++i) u[i]=0; u[0]=1; vector > > v(m/3+1); int sz=0; for(int l=i;l>=max(0LL,i-m);l-=3) { v[sz++]={l,u}; if(l>=1) add(u,a[l-1]); if(l>=2) add(u,a[l-2]);if(l>=3) add(u,a[l-3]); } array d,d1; for(int i=0;i<100;++i) d1[i]=0; d1[0]=1; for(int r=i;r<=min(n,i+m);++r) { if(r!=i) { add(d1,a[r-1]); } d=d1; int pos=(i-r+m)/3; auto [l,u]=v[pos]; while(l>r-m) { add(d,a[l-1]); --l; } ans[l]=f(d,u); } } for(int i=0;i<=n-m;++i) { cout<<(ans[i]+p-1)%p<<'\n'; } return 0; }