#include<bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 10;
int vis[maxn];
class Edge
{
public:
int p;
int x;
int id;
public:
Edge(int a,int xx,int idd){p=a;x=xx;id=idd;}
};
int main()
{
int n;
int arr[maxn];
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&arr[i]);
int m;
int max_x=0;
map<int,int> mp;
scanf("%d",&m);
vector<Edge> a;
for(int i=0;i<m;i++){
int id;
scanf("%d",&id);
// last=id;
if(id==1){
int p,x;
scanf("%d%d",&p,&x);
mp[p-1]=1;
arr[p-1]=x;
a.push_back(Edge(p-1,x,1));
}
else{
int x;
scanf("%d",&x);
max_x=max(max_x,x);
a.push_back(Edge(2,x,2));
}
}
int tmp=0;
map<int,int> vis;
for(int i=a.size()-1;i>=0;i--){
if(a[i].id==2)
tmp=max(tmp,a[i].x);
else{
if(!vis[a[i].p]){
arr[a[i].p]=max(tmp,a[i].x);
vis[a[i].p]=1;
}
}
}
for(int i=0;i<n;i++){
if(i)
cout<<" ";
if(mp[i]){
cout<<arr[i];
}
else{
cout<<max(arr[i],max_x);
}
}
cout<<endl;
}