#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n;
  cin >> n;
  long long a[n];
  long long ar[n];
  for (long long i = 0; i < n; i++) {
    cin >> a[i];
    ar[i] = 0;
  }
  long long q;
  cin >> q;
  vector<tuple<long long, long long, long long>> v;
  long long num;
  long long maxi = 0;
  for (long long i = 0; i < q; i++) {
    cin >> num;
    if (num == 1) {
      long long num1, num2;
      cin >> num1 >> num2;
      v.push_back(make_tuple(num, num1 - 1, num2));
    } else {
      long long num1;
      cin >> num1;
      maxi = max(maxi, num1);
      v.push_back(make_tuple(num, num1, 0));
    }
  }
  long long dp[q + 1];
  dp[q] = 0;
  for (long long i = (q - 1); i >= 0; i--) {
    if (get<0>(v[i]) == 2) {
      dp[i] = max(dp[i + 1], get<1>(v[i]));
    } else {
      dp[i] = dp[i + 1];
    }
    if (get<0>(v[i]) == 1 && ar[get<1>(v[i])] == 0) {
      ar[get<1>(v[i])] = 1;
      a[get<1>(v[i])] = max(get<2>(v[i]), dp[i]);
    }
  }
  for (long long i = 0; i < n; i++) {
    if (ar[i] == 0) {
      a[i] = max(a[i], maxi);
    }
    cout << a[i] << " ";
  }
}
