#include <bits/stdc++.h>
using namespace std;
const int U = 1 << 18;
int ma[U + U], a[U + U];
void ustal(int v, int p, int l, int r) {
  if (v == p + U) {
    a[v] = std::max(a[v], ma[v]);
    ma[v] = 0;
    return;
  }
  int s = (l + r) / 2;
  if (ma[v] != 0) {
    ma[v + v] = std::max(ma[v + v], ma[v]);
    ma[v + v + 1] = std::max(ma[v + v + 1], ma[v]);
    ma[v] = 0;
  }
  if (p <= s)
    ustal(v + v, p, l, s);
  else
    ustal(v + v + 1, p, s + 1, r);
}
void testcase() {
  int n, m;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%d", &a[i + U]);
  scanf("%d", &m);
  for (int ii = 0; ii < m; ii++) {
    int aa;
    scanf("%d", &aa);
    if (aa == 1) {
      int p, x;
      scanf("%d %d", &p, &x);
      p--;
      ustal(1, p, 0, U - 1);
      a[p + U] = x;
    } else {
      int x;
      scanf("%d", &x);
      ma[1] = std::max(ma[1], x);
    }
  }
  for (int v = 1; v < U; v++)
    if (ma[v] > 0) {
      ma[v + v] = std::max(ma[v + v], ma[v]);
      ma[v + v + 1] = std::max(ma[v + v + 1], ma[v]);
      ma[v] = 0;
    }
  for (int i = 0; i < n; i++) printf("%d ", std::max(ma[i + U], a[i + U]));
  printf("\n");
}
int main() {
  int tt = 1;
  for (int ii = 1; ii <= tt; ii++) {
    testcase();
  }
  return 0;
}
