#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 9, INF = 0x3f3f3f3f;
int n, m, a[N], b[N], c[N], tot, id[N], ans[N], al[N], qzh[N], p[N], tt;
bool vis[N];
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);
  scanf("%d", &m);
  for (int i = 1; i <= m; ++i) scanf("%d", &b[i]);
  sort(b + 1, b + m + 1);
  m = unique(b + 1, b + m + 1) - b - 1;
  for (int i = 1, l, r, mid; i <= n; ++i) {
    if (a[i] == -1) {
      for (l = tot, r = m; r; --r) {
        while (l && b[r] <= c[l]) --l;
        ++l;
        if (l > tot) ++tot;
        id[l] = i;
        c[l] = b[r];
      }
    } else {
      if (!tot || a[i] > c[tot]) {
        c[++tot] = a[i];
        id[tot] = i;
        p[i] = tot;
        continue;
      }
      l = 1;
      r = tot;
      while (l <= r) {
        mid = (l + r) >> 1;
        if (c[mid] >= a[i])
          r = mid - 1;
        else
          l = mid + 1;
      }
      id[l] = i;
      c[l] = a[i];
      p[i] = l;
    }
  }
  for (int i = 1; i <= n; ++i) {
    qzh[i] = qzh[i - 1];
    if (a[i] != -1)
      al[i] = lower_bound(b + 1, b + m + 1, a[i]) - b - 1;
    else
      ++qzh[i];
  }
  p[n + 1] = tot + 1;
  qzh[n + 1] = qzh[n];
  al[n + 1] = m;
  for (int i = n + 1, j, A, B, now = INF, pos = m, nex = tot + 1; i;) {
    if (i != n + 1) ans[++tt] = a[i];
    if (nex == 1 || nex == 0) break;
    for (j = i - 1; j; --j)
      if (a[j] != -1 && a[j] < now) {
        A = qzh[i] - qzh[j];
        B = max(0, al[i] - al[j] - (b[al[j] + 1] == a[j]));
        if (min(A, B) + p[j] + 1 == nex) break;
      }
    nex = p[j];
    for (--i; i != j; --i)
      if (a[i] == -1) {
        while (vis[pos] || b[pos] >= now) --pos;
        if (b[pos] <= a[j]) break;
        now = a[i] = b[pos];
        vis[pos--] = 1;
        ans[++tt] = a[i];
      }
    i = j;
    now = a[j];
  }
  for (int i = 1, j = 1; i <= n; ++i)
    if (a[i] == -1) {
      while (vis[j]) ++j;
      a[i] = b[j++];
    }
  for (int i = 1; i <= n; ++i) printf("%d%c", a[i], i == n ? '\n' : ' ');
  return 0;
}
