#include <bits/stdc++.h>
using namespace std;
long long int inf = numeric_limits<long long int>::max();
int main() {
  long long int n, q, a, b, c, maxi = 0;
  cin >> n;
  vector<long long int> last_receipt(n), time_of_last_receipt(n);
  for (int i = 0; i < n; i++) cin >> last_receipt[i];
  cin >> q;
  vector<long long int> payoffs(q), biggest_payoff_from_right(q);
  for (int i = 0; i < q; i++) {
    cin >> a;
    if (a == 1) {
      cin >> b >> c;
      last_receipt[b - 1] = c;
      time_of_last_receipt[b - 1] = i;
    }
    if (a == 2) {
      cin >> b;
      payoffs[i] = b;
    }
  }
  for (int i = q - 1; i >= 0; i--) {
    maxi = max(maxi, payoffs[i]);
    biggest_payoff_from_right[i] = maxi;
  }
  for (int i = 0; i < n; i++) {
    if (last_receipt[i] < biggest_payoff_from_right[time_of_last_receipt[i]]) {
      cout << biggest_payoff_from_right[time_of_last_receipt[i]] << " ";
    } else
      cout << last_receipt[i] << " ";
  }
  return (0);
}
