#include <bits/stdc++.h>
using namespace std;
int n, m, k, i, j, a[100002], b[100002], b1[100002], f[100002], g[100002],
    l[100002], p[100002], len, pos, val, cnt, ans[100002];
bool vis[100002];
int read() {
  char c = getchar();
  int w = 0, f = 1;
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c <= '9' && c >= '0') {
    w = w * 10 + c - '0';
    c = getchar();
  }
  return w * f;
}
int main() {
  n = read();
  for (i = 1; i <= n; i++) a[i] = read();
  a[++n] = 1 << 30;
  m = read();
  for (i = 1; i <= m; i++) b[i] = read();
  sort(b + 1, b + m + 1);
  for (i = 1; i <= n; i++) f[i] = 1 << 30;
  for (i = 1; i <= n; i++) {
    if (a[i] != -1) {
      int pos = lower_bound(f + 1, f + n + 1, a[i]) - f - 1;
      l[i] = pos + 1;
      f[l[i]] = a[i];
      g[l[i]] = i;
      p[i] = g[l[i] - 1];
    } else {
      for (j = m, k = n; j >= 1; j--) {
        while (k >= 1 && f[k] >= b[j]) k--;
        f[k + 1] = b[j];
        g[k + 1] = i;
      }
    }
  }
  for (len = l[n], pos = n, val = a[n]; len >= 1; len--) {
    if (a[pos] != -1) {
      pos = p[pos];
      if (a[pos] != -1)
        val = a[pos];
      else {
        int x = lower_bound(b + 1, b + m + 1, val) - b - 1;
        vis[x] = 1;
        ans[pos] = val = b[x];
      }
    } else {
      bool flag = 0;
      for (i = pos - 1; i >= 1; i--) {
        if (a[i] != -1 && l[i] == len - 1 && a[i] < val) {
          pos = i;
          val = a[i];
          flag = 1;
          break;
        }
      }
      if (flag) continue;
      for (i = pos - 1; i >= 1; i--) {
        if (a[i] == -1) {
          pos = i;
          int x = lower_bound(b + 1, b + m + 1, val) - b - 1;
          vis[x] = 1;
          ans[pos] = val = b[x];
          break;
        }
      }
    }
  }
  for (i = 1; i <= m; i++) {
    if (!vis[i]) b1[++cnt] = b[i];
  }
  for (i = j = 1; i <= n; i++) {
    if (a[i] != -1)
      ans[i] = a[i];
    else if (ans[i] == 0)
      ans[i] = b1[j++];
  }
  for (i = 1; i < n; i++) printf("%d ", ans[i]);
  puts("");
  return 0;
}
