#include<bits/stdc++.h>
using namespace std;
int a[100000001],n,m,k,t;
struct node{
vector<int>c;
int p,v;
int t;
}f[1000001];
void k_function(int s){
if(f[s].t==1){
a[f[s].p]+=f[s].v;
return;
}
if(f[s].t==2){
for(int i=1;i<=n;i++) a[i]=a[i]*f[s].v%998244353;
return;
}
if(f[s].t==3){
for(int i=0;i<f[s].c.size();i++){
k_function(f[s].c[i]);
}
return;
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
cin>>m;
for(int i=1;i<=m;i++){
cin>>t;
f[i].t=t;
if(t==1) cin>>f[i].p>>f[i].v;
if(t==2) cin>>f[i].v;
if(t==3){
cin>>t;
while(t--) cin>>k,f[i].c.push_back(k);
}
}
cin>>t;
while(t--){
cin>>m;
k_function(m);
}
for(int i=1;i<=n;i++) cout<<a[i]<<" ";
}
五 彩 斑 斓