#include <bits/stdc++.h>
using namespace std;
mt19937 rnd(chrono::system_clock::now().time_since_epoch().count());
const int MAXN = 200100, MAXK = 25;
const long long MOD = 998244353;
int st[MAXN][MAXK];
int n, q;
int a[MAXN];
pair<int, int> lastP[MAXN];
int lg[MAXN];
void buildST() {
  for (int j = (1); j <= (MAXK); j++)
    for (int i = 0; i + (1 << j) <= q; i++)
      st[i][j] = max(st[i][j - 1], st[i + (1 << (j - 1))][j - 1]);
}
int getMax(int l, int r) {
  int p = lg[r - l + 1];
  return max(st[l][p], st[r - (1 << p) + 1][p]);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(nullptr);
  cin >> n;
  for (int i = (1); i <= (n); i++) cin >> a[i];
  for (int i = (1); i <= (n); i++) lastP[i] = {a[i], -1};
  cin >> q;
  for (int i = (2); i <= (q); i++) lg[i] = lg[i / 2] + 1;
  for (int i = (0); i <= (q - 1); i++) {
    int t;
    cin >> t;
    if (t == 1) {
      int p, x;
      cin >> p >> x;
      lastP[p] = {x, i};
    } else {
      int x;
      cin >> x;
      st[i][0] = x;
    }
  }
  buildST();
  for (int i = (1); i <= (n); i++) {
    int cur = lastP[i].first, wh = lastP[i].second;
    cur = max(cur, getMax(wh + 1, q - 1));
    cout << cur << " ";
  }
  return 0;
}
