#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define N 19
#define M (1<<N)
#define ll long long
#define mod 998244353
int n,m;
ll ksm(ll a,ll b=mod-2)
{
	if(b==0) return 1;
	if(b==1) return a;
	ll q=ksm(a,b>>1);
	if(b&1) return q*q%mod*a%mod;
	return q*q%mod;
}
ll inv2=499122177;
void fwt(ll f[],int opt)
{
	for(int l=1;l<m;l<<=1)
		for(int j=0;j<M;j+=l<<1)
			for(int i=0;i<l;i++)
			{
				ll v=f[i+j+l];
				f[i+j+l]=(f[i+j]-v+mod)%mod;
				f[i+j]=(f[i+j]+v)%mod;
				if(opt==-1)
				{
					f[i+j]=f[i+j]*inv2%mod;
					f[i+j+l]=f[i+j+l]*inv2%mod;
				}
			}
}
ll num[M];
ll f[M+10],g[M+10];
int main()
{
	scanf("%d",&n);
	m=1<<n;
	ll sum=0;
	for(int i=0;i<m;i++) scanf("%lld",&num[i]),sum=(sum+num[i])%mod;
	sum=ksm(sum);
	f[0]=m-1;
	for(int i=1;i<m;i++) f[i]=mod-1;
	for(int i=0;i<m;i++) g[i]=num[i]*sum%mod;
	g[0]=(g[0]-1+mod)%mod;
	fwt(f,1);
	fwt(g,1);
	int id=0;
	for(int i=0;i<m;i++)
	if(g[i]) f[i]=f[i]*ksm(g[i])%mod;
	else f[i]=0,id=i;
	fwt(f,-1);
	ll v=f[0];
	fwt(f,1);
	f[id]=(mod-v)*m%mod;
	fwt(f,-1);
	for(int i=0;i<m;i++) printf("%lld\n",f[i]);
}