#include <bits/stdc++.h>
using namespace std;
const int M = 2e5 + 5;
int a[M], val[M], pos[M], op[M], di[M], vis[M];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
  int t;
  scanf("%d", &t);
  for (int i = 1; i <= t; i++) {
    scanf("%d", &op[i]);
    if (op[i] == 1) {
      scanf("%d%d", &pos[i], &val[i]);
    } else
      scanf("%d", &di[i]);
  }
  int minn = 0;
  for (int i = t; i >= 1; i--) {
    if (op[i] == 2)
      minn = max(di[i], minn);
    else {
      int index = pos[i], c = val[i];
      if (vis[index]) continue;
      vis[index] = 1;
      a[index] = max(minn, c);
    }
  }
  for (int i = 1; i <= n; i++)
    if (vis[i])
      printf("%d ", a[i]);
    else
      printf("%d ", max(minn, a[i]));
  return 0;
}
