#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
int n, b[MAXN], c[MAXN], bin[MAXN << 1], tot;
int val[MAXN], deg[MAXN], stk[MAXN << 1], top;
int fir[MAXN], cnt = 1, nxt[MAXN << 1], to[MAXN << 1];
inline void add(int u, int v) {
  to[++cnt] = v;
  nxt[cnt] = fir[u];
  fir[u] = cnt;
}
bool vis[MAXN];
void dfs(int u) {
  for (int &i = fir[u]; i; i = nxt[i])
    if (!vis[i >> 1]) {
      vis[i >> 1] = 1;
      dfs(to[i]);
    }
  stk[++top] = u;
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i < n; ++i) scanf("%d", &b[i]), bin[++tot] = b[i];
  for (int i = 1; i < n; ++i) {
    scanf("%d", &c[i]), bin[++tot] = c[i];
    if (c[i] < b[i]) return puts("-1"), 0;
  }
  sort(bin + 1, bin + tot + 1);
  tot = unique(bin + 1, bin + tot + 1) - bin - 1;
  int now = 0;
  for (int i = 1; i < n; ++i) {
    int tempb = lower_bound(bin + 1, bin + tot + 1, b[i]) - bin;
    val[tempb] = b[i];
    int tempc = lower_bound(bin + 1, bin + tot + 1, c[i]) - bin;
    val[tempc] = c[i];
    b[i] = tempb, c[i] = tempc;
    if ((++deg[b[i]]) & 1)
      ++now;
    else
      --now;
    if ((++deg[c[i]]) & 1)
      ++now;
    else
      --now;
    add(b[i], c[i]);
    add(c[i], b[i]);
  }
  if (!now)
    dfs(1);
  else if (now == 2) {
    for (int i = 1; i <= n; ++i)
      if (deg[i] & 1) {
        dfs(i);
        break;
      }
  }
  if (top != n)
    puts("-1");
  else {
    for (int i = 1; i <= n; ++i)
      printf("%d%c", val[stk[i]], i == n ? '\n' : ' ');
  }
}
