#include <bits/stdc++.h>
using namespace std;
const int Max = 313;
vector<int> G[Max];
vector<int> Ans, V;
int k, Q, x = 1;
bool dfs(int sv, int p) {
  if (sv == Q) return 1;
  for (int i = 0; i < G[sv].size(); i++)
    if (G[sv][i] != p) {
      if (dfs(G[sv][i], sv)) {
        V.push_back(sv);
        return 1;
      }
    }
  return 0;
}
int main() {
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  int n, u, v;
  cin >> n;
  for (int i = 1; i < n; i++)
    cin >> u >> v, G[u].push_back(v), G[v].push_back(u);
  for (int i = 2; i <= n; i++)
    if (G[i].size() == 1) k++;
  for (int i = 1; i <= k; i++) {
    cin >> Q;
    dfs(x, 0);
    for (int i = V.size() - 1; i >= 0; i--) Ans.push_back(V[i]);
    V.clear();
    x = Q;
    if (i == k) {
      Q = 1;
      dfs(x, 0);
      for (int i = V.size() - 1; i >= 0; i--) Ans.push_back(V[i]);
    }
  }
  Ans.push_back(1);
  if (Ans.size() != 2 * n - 1) return cout << -1, 0;
  for (int i = 0; i < Ans.size(); i++) cout << Ans[i] << ' ';
}
