#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
using namespace std;
const int INF = 0x3f3f3f3f;
const long long LINF = 0x3f3f3f3f3f3f3f3fll;
int read_int() {
  bool minus = false;
  int result = 0;
  char ch;
  ch = getchar();
  while (1) {
    if (ch == '-') break;
    if (ch >= '0' && ch <= '9') break;
    ch = getchar();
  }
  if (ch == '-')
    minus = true;
  else
    result = ch - '0';
  while (1) {
    ch = getchar();
    if (ch < '0' || ch > '9') break;
    result = result * 10 + (ch - '0');
  }
  if (minus)
    return -result;
  else
    return result;
}
const int MAX = 2e5 + 10;
unsigned char v[MAX];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    int x;
    cin >> x;
    v[i] = x;
  }
  int q;
  cin >> q;
  while (q--) {
    int l, r, X, Y;
    cin >> l >> r >> X >> Y;
    unsigned char x = X, y = Y;
    l--, r--;
    for (int i = l; i <= r; i++) v[i] = v[i] == x ? y : v[i];
  }
  for (int i = 0; i < n; i++) cout << int(v[i]) << " ";
  cout << '\n';
  exit(0);
}
