#include <bits/stdc++.h>
#define int long long
using namespace std;
int p[100010],q[100010];
int mx[100010],mx2[100010];
int idx[100010],idx2[100010];
int m=998244353;
long long qsm(long long a, long long b) {
a %= m;
long long res = 1;
while (b > 0) {
if (b & 1) res = res * a % m;
a = a * a % m;
b >>= 1;
}
return res;
}
void solve(){
int n;
cin>>n;
for(int i=0;i<n;i++)cin>>p[i];
for(int j=0;j<n;j++)cin>>q[j];
for(int i=0;i<n;i++){
if(i==0){
mx[i]=p[i];
idx[i]=i;
mx2[i]=q[i];
idx2[i]=i;
}else{
if(mx[i-1]>p[i]){
mx[i]=mx[i-1];
idx[i]=idx[i-1];
}else{
mx[i]=p[i];
idx[i]=i;
}
if(mx2[i-1]>q[i]){
mx2[i]=mx2[i-1];
idx2[i]=idx2[i-1];
}else{
mx2[i]=q[i];
idx2[i]=i;
}
}
}
for(int i=0;i<n;i++){
int x1=mx[i],x2=mx2[i];
if(x1==x2){
int q2=q[i-idx[i]];int p2=p[i-idx2[i]];
long long ans1=qsm(2,x1)+qsm(2,q2);
long long ans2=qsm(2,x2)+qsm(2,p2);
cout<<max(ans1,ans2)%m<<" ";
}else{
if(x1>x2){
int q2=q[i-idx[i]];
cout<<(qsm(2,x1)+qsm(2,q2))%m<<" ";
}else{
int p2=p[i-idx2[i]];
cout<<(qsm(2,x2)+qsm(2,p2))%m<<" ";
}
}
}
cout<<endl;
}
signed main(){
int T;
cin>>T;
while(T--)solve();
return 0;
}